2016-06-13 7 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を装着していた最後の行のだと仮定します。

その時点までに作成されたDBを見てみると、ユーザーとアドレスが正しく作成され、各ユーザーには割り当てられたアドレスが割り当てられます。あなたのUserモデルがアドレスモデルとの関係を定義する機能を持っているので、あなたは関数としてではないとして、それを呼び出す必要があり

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

ここ
public function addresses() 
{ 
    return $this->hasMany('App\Address'); 
} 
関連する問題