因为所有的 Eloquent 模型都默认不可进行批量赋值,而 $fillable 属性可以看作是批量赋值的“白名单”,定义了它就可以批量赋值了,但也只能应用于 create() 方法,如想要在 update() 方法中同样有效,须结合$request->only()与Eloquent模型的getFillable()一起使用:
<?php namespace App; use Illuminate\Database\Eloquent\Model; class User extends Model { protected $primaryKey = 'id'; /** * 可以被批量赋值的属性。 * * @var array */ protected $fillable = ['name', 'avatar', 'job']; }
用法举例:
$result = App\User::where('id', $id)->update($request->only((new App\User)->getFillable()));