2016-06-13 19 views
0

Kann jemand sehen, was scheint das Problem mit meiner Sämaschine zu sein?Laravel Sämaschine funktioniert nicht

public function run() 
{ 
    $faker = Faker\Factory::create(); 
    $limit = 30; 

    $userId = App\User::all()->lists('id')->toArray(); 
    $status = App\OrderStatus::all()->lists('id')->toArray(); 


    for ($i = 0; $i < $limit; $i++) { 
     $chosenUserId = $faker->randomElement($userId); 
     $user = App\User::find($chosenUserId); 

     DB::table('orders')->insert([ 
      'created_at' => $faker->date('Y-m-d'), 
      'user_id' => $chosenUserId, 
      'status_id' => $faker->randomElement($status), 
      'draft'  => false, 
      'address_id' => $user->addresses->first()->id 
     ]); 
    } 
} 

Ich halte trying to get property of non-object Fehler bekommen, und ich nehme an, es wegen der letzten Zeile ist, wo ich bin address_id anbringen.

Wenn ich mir die DB anschaue, was bis zu diesem Zeitpunkt erstellt wurde, sind Benutzer und Adressen in Ordnung, und jedem Benutzer ist eine Adresse zugewiesen.

In Benutzermodell ich habe:

public function addresses() 
{ 
    return $this->hasMany('App\Address'); 
} 

Antwort

0

hier:

addresses -> addresses() 
0

Da Ihr User-Modell eine Funktion haben, die Beziehung mit der Adresse Modell zu definieren, können Sie es als eine Funktion aufrufen, sollte nicht als Objektattribute:

DB::table('orders')->insert([ 
     'created_at' => $faker->date('Y-m-d'), 
     'user_id' => $chosenUserId, 
     'status_id' => $faker->randomElement($status), 
     'draft'  => false, 
     'address_id' => $user->addresses()->first()->id 
    ]);