搜尋

首頁  >  問答  >  主體

解決Laravel-8中嘗試在null上讀取屬性"id"的問題

運行時出現此錯誤 php artisan migrate:fresh --seed 此命令將在 MySQL 資料庫中建立表,並將資料庫詳細資訊 DB_DATABASE 填入 .env 檔案中。

parent::boot();
    static::creating(function($model)
    {
    $user = Auth::user();
    model->created_by = $user->id ? $user->id : 1 ;
      });
      static::updating(function($model)
      {
       $user = Auth::user();```


Controller:


#
P粉194919082P粉194919082402 天前590

全部回覆(2)我來回復

  • P粉786432579

    P粉7864325792023-11-09 13:01:31

    更改此行:

    model->created_by = $user->id ? $user->id : 1 ;

    對此:

    model->created_by = $user ? $user->id : 1 ;

    您必須先檢查$user是否為空。

    回覆
    0
  • P粉478188786

    P粉4781887862023-11-09 09:28:03

    這裡的問題是 $user 的值為 nullnull 沒有任何屬性。

    $user 將永遠為 null,而您的程式碼則為 Auth::user() 將是 null 。在執行播種程序期間,您沒有經過驗證的使用者

    如果您想將User 指派給您的$model 並且您已為User 表播種,您可以取得一個使用者這樣

    $model->created_by = \App\Models\User::where('id', 5)->first();

    如果您不想要特定的用戶,那麼您可以這樣做:

    $model->created_by = \App\Models\User::inRandomOrder()->first();

    回覆
    0
  • 取消回覆