Heim  >  Fragen und Antworten  >  Hauptteil

Behebung eines Problems in Laravel-8, bei dem versucht wurde, die Eigenschaft „id“ auf Null zu lesen

Dieser Fehler tritt beim Ausführen auf php artisan migrate:fresh --seed Dieser Befehl erstellt eine Tabelle in der MySQL-Datenbank und füllt die .env-Datei mit den Datenbankdetails DB_DATABASE.

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粉194919082369 Tage vor569

Antworte allen(2)Ich werde antworten

  • 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是否为空。

    Antwort
    0
  • P粉478188786

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

    这里的问题是 $user 的值为 null 并且 null 没有任何属性。

    $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();

    Antwort
    0
  • StornierenAntwort