2016-09-26 5 views
1

私はこの非常にシンプルなラインを持っている:JSONに戻ったとき、それはオブジェクト雄弁変更リターン形式

0 : {email: "[email protected]", pivot: {user_id: "1", email_id: "1", confirm: "1"}}, 
1 : {email: "[email protected]", pivot: {user_id: "1", email_id: "2", confirm: "0"}}, 
2 : {email: "[email protected]", pivot: {user_id: "1", email_id: "3", confirm: "0"}} 
必要に応じて

、ユーザーの電子メール()関数の配列を与える

$user["emails"] = $user->emails()->get(array('email')); 

return $this->belongsToMany('App\Email', 'user_email')->withPivot('confirm'); 

返されたデータをより簡単にしたいと思います。ように:

0 : "[email protected]", 
1 : "[email protected]", 
2 : "[email protected]" 

ありがとうございます!

答えて

2

お探しの方法はpluck()です。

$user['emails'] = $user->emails()->pluck('email'); 

これは、要求した方法で電子メールの配列を返します。 「列値リストの取得」サブセクションのhttps://laravel.com/docs/5.3/queries#retrieving-results

+0

で、これに関する情報を見つけることができます。ソリューションを試すときは、最初の電子メールのみが送信されます。配列はありません。「[email protected]」のみ –

+2

文書によると、返されたすべての結果の電子メール列の配列が返されます。 – ollieread

+1

' - > pluck( 'email') - > all()'を使用する必要がある場合、 'pluck()'はCollectionを返します。詳細はhttp://devdocs.io/laravel~5.3/api/5.3/illuminate/database/eloquent/builder#method_pluckを参照してください。 – Robert