2016-08-23 20 views
1

私のアプリでは、phim slim3 fraemworkとeloquent ormを使用しています。 そして私は雄弁な関係のロードと困惑している。..Eloquentで作成した直後の負荷関係を熱望する方法

だが、私は、当社およびユーザーモデル ユーザーがcompanyメソッドを持っており、当社はusers方法などを持っているとしましょう 私は創造の関係で私のオブジェクトを移入したいと思います

よく どちらの方法は、私が保存されます。この例の会社との関係で、ユーザー

function doSomething(array $data) 
{ 
    $company= new Company(); 
    //fill it 
    //... 
    $users = []; 
    foreach ($data['user_emails'] as $email) 
    { 
     $users[] = new User(['email' => $email]); 
    } 
    $company->users()->saveMany($users); 
    $company->save(); 

    return $company(); 
} 


$company = doSomething(['emails'] => ['[email protected]', '[email protected]']); 

//rely on build in to Model toString that uses json serialization 
echo $company; 

で新しい会社を作成したいどこたより

//User.php 
company() 
{ 
    return $this->belongsTo('Company'); 
} 

//Company.php 
users() 
{ 
    return $this->hasMany('User'); 
} 

きちんと説明 - それは 動作しますが、会社のJSONに会社になりますのみ と私は同様にユーザーとそれを見たいと思います

私はこの会社を既に持っている場合は、私は使用することができますwith

echo Company::query()->with('user')->get(); 

私は必要なすべてのデータを持っています。データベースから再度フェッチする必要はありません。 作成直後に関連ユーザーと一緒に会社を返却する方法はありますか?トリッキーな方法 見つかり

答えて

0

は、右の前doSomething方法から、それを返す手動でリレーションを開始した。..

$company->setRelation('users', new Collection($users)); 

は自明でないとトリッキー

ルックス私の場合に到達するための他の方法があるかどうかをアドバイスしてください?

関連する問題