在使用tinker修改新建的model的資料庫欄位時,出現這個錯誤訊息:
Illuminate\Database\Eloquent\MassAssignmentException Add [name] to fillable property to allow mass assignment on [App\Models\XXXX]
表示你須要加入$fillabe這個白名單變數,讓程式可以針對資料庫裡的白名單進行修改,或加入$guarded黑名單,讓程式禁示修改指定的資料庫欄位,程式如下:
class UserData extends Model{
use HasFactory;
//白名單//
protected $fillable = [
'user_id',
'name',
];
//黑名單
protected $guarded = ['name'];
//不設黑白名單
protected $guarded = [''];}
程式改完後,發現錯誤息一樣出現,請先離開tinker,重新啟動tinker即可。
最後,如果你完全想要黑白名單這個功能,你可以在/Users/lithanhgia/www/laragigs/app/Providers/AppServiceProvider.php這個類別的boot fcuntion 加入這行:
public function boot()
{
Model::unguard();
}
如此一來,你所有的Model類別都不用再加入$fillable或$guarded。前提是你要想清楚。