2016-11-16 41 views
8

私は関連ユーザーを持つSellerオブジェクトを持っています。Laravelは関係からフィールドを抜きました

{!! Form::selectGroup('seller_id', 'Seller', Seller::with('user')->pluck('user.first_name', 'id')->toArray(), null) !!} 

問題は、私は関係(user.first_name)からフィールドを取ることができないということです。私はこのような何かをする必要があるので、私はLaravelCollectiveから選択を入力する必要があります。

どうすればいいですか?

$s = Seller::join('users', 'sellers.user_id', '=', 'users.id') 
      ->pluck('sellers.id', 'users.id') 
      ->all(); 

これは与える:

UPDATE

私はこれをやって回避したい...

<?php 
    $sellers = []; 

    Seller::with('user')->get()->each(function ($seller) use (&$sellers) { 
     $sellers[$seller->id] = $seller->user->first_name; 
    }); 
?> 

答えて

15

あなたはようLaravelのpluckメソッドを使用することができます:あなたが ``)(摘み取るためにあなたの呼び出しで後方の引数を持って

$sellers = Seller::with('user')->get()->pluck('user.first_name', 'id') 
4

あなたはこのようjoin() & pluck()を使用してそれを達成することができますこのような配列:

[ 
    'seller_id_1' => 'user_id_1', 
    'seller_id_2' => 'user_id_2', 
    'seller_id_3' => 'user_id_3', 
    'seller_id_4' => 'user_id_4', 
    'seller_id_n' => 'user_id_n', 
]; 

これが役立ちますように!

+0

。あなたが提案している結果を得るには、 'pluck( 'users.id'、 'sellers.id')'と呼ぶ必要があります。最初のargは、抜き取る値で、2番目のargは、抜き取った値ごとに配列キーとして使用する値です。 – Soulriser

関連する問題