2024-01-02|閱讀時間 ‧ 約 23 分鐘

解決Add [name] to fillable property to allow mass assignment.

    在使用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。前提是你要想清楚。

    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.