Laravel 博客开发|Eloquent 模型

本文介绍了如何在 Laravel 中移除默认的 User 模型并创建新的 Column 模型。Eloquent ORM 提供了方便的数据交互方式,Column 模型对应数据库的 columns 表。为了防止批量赋值漏洞,我们需要定义 $fillable 属性,指定允许批量赋值的字段,如在 Column 模型中设置了 'name' 字段。
摘要由CSDN通过智能技术生成

Laravel 包含了 Eloquent,这是一个对象关系映射器(ORM),使与数据库的交互变得很愉快。使用 Eloquent 时,每个数据库表都有一个对应的「模型」,用于与该表进行交互。除了从数据库表中检索记录外,Eloquent 模型还允许您从表中插入,更新和删除记录。

前面已经创建了一张专栏数据表,现在要添加对应的 Eloquent 模型。

移除默认模型

Laravel 项目的模型文件都存放在 app/Models目录下,Laravel 项目默认生成了 User.php文件,是用户表对应都模型文件,如前面所说的一样,在我的博客项目中也用不到,所以也移除:

rm app/Models/User.php

生成专栏模型

运行如下命令生成模型文件:

php artisan make:model Column

打开生成的Column.php模型文件看看默认代码:

<?php namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Column extends Model
{
  use HasFactory;
}

在该文件中,Eloquent Column 模型默认情况下会使用类的「下划线命名法」与「复数形式名称」来作为数据表的名称生成规则,如:Column 数据模型类对应 columns 数据表。

模型通常位于 app\Models目录中,并继承 Illuminate\Database\Eloquent\Model 类。

class Column extends Model
{
  use HasFactory;
}

HasFactory 是模型工厂相关功能的引用。

添加$fillabe属性

使用 make:model 命令生成的所有 Eloquent 模型都受到保护,免受批量分配漏洞的影响。

当用户传递一个意外的 HTTP 请求字段并且该字段更改了你的数据库中的一个字段,而你没有预料到时,就会出现批量分配漏洞。 例如,恶意用户可能通过 HTTP 请求发送 is_admin 参数,然后将其传递给模型的 create 方法,从而允许用户将自己升级为管理员。

因此,应该定义要使哪些模型属性可批量分配。可以使用模型上的 $fillable 属性来执行此操作。现在要让Column模型的 name属性可以批量赋值:

protected $fillable = [
  'name'
];

完整的 Column模型的内容如下:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Column extends Model
{
    use HasFactory;

    protected $fillable = [
        'name'
    ];
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SevDot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值