在Laravel Eloquent中,可以通过在模型类中使用$fillable
属性来指定哪些列是可以被批量赋值的。如果你想要指定某一列不能为空,可以在模型类中使用$guarded
属性来定义受保护的列,这些列将被禁止批量赋值。
首先,打开你的模型类文件,通常位于app
目录下的Models
文件夹中。在模型类中,你可以定义$fillable
和$guarded
属性。
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class YourModel extends Model
{
protected $fillable = ['column1', 'column2', 'column3'];
protected $guarded = ['column4', 'column5'];
}
在$fillable
属性中,你可以列出你允许批量赋值的列名。这意味着当你使用create
或update
等方法时,你可以传递一个关联数组来进行批量赋值。
YourModel::create([
'column1' => 'value1',
'column2' => 'value2',
'column3' => 'value3',
]);
在$guarded
属性中,你可以列出你不希望被批量赋值的列名。这些列将被保护起来,不允许通过批量赋值进行修改。
如果你想要在保存模型之前验证某一列不能为空,可以使用Laravel的模型事件。在模型类中,你可以定义一个saving
事件的监听器,并在其中进行列的验证。
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class YourModel extends Model
{
protected $fillable = ['column1', 'column2', 'column3'];
protected $guarded = ['column4', 'column5'];
public static function boot()
{
parent::boot();
static::saving(function ($model) {
if (empty($model->column1)) {
throw new \Exception('column1不能为空');
}
});
}
}
在上述示例中,我们在saving
事件的监听器中验证了column1
列是否为空。如果为空,我们抛出一个异常来阻止模型的保存。
这样,当你尝试保存一个模型时,如果column1
列为空,将会抛出一个异常,从而指示该列不能为空。
关于Laravel Eloquent的更多信息和使用方法,你可以参考腾讯云的Laravel Eloquent文档。
领取专属 10元无门槛券
手把手带您无忧上云