2016-06-13 55 views
0

任何人都可以看到什麼似乎是我的播種機的問題?Laravel播種機不工作

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 
     ]); 
    } 
} 

我不斷收到trying to get property of non-object的錯誤,我想這是因爲在那裏我附上address_id的最後一行。

當我看看在這之前創建的數據庫,用戶和地址創建的很好,並且每個用戶都有一個分配給他的地址。

在用戶模式,我有:

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

回答

0

這裏:

addresses -> addresses() 
0

由於您的用戶模型有一個函數定義與地址模式的關係,你應該把它作爲一個功能不作爲對象屬性:

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 
    ]);