因为所有的 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()));