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