2017-05-21 4 views
1

添付ファイルを含む2つのモデルをどのようにマージできますか?添付ファイルを含むモデルoctoberCMS

$hotels = collect([Hotel::get()]); 
$tours = collect([Tours::get()]); 
$merged = $hotels->merge($tours); 

この作品やコレクションをマージしますが、それはdoesntの/私はこれをどのように行うことができます attachMany attacheOne含まですか? ありがとう

答えて

1

あなたが何もロードしていないので、関係は含まれません。

$hotels = Hotel::with(['relation1', 'relation2'])->get(); 
$tours = Tours::with(['relation1', 'relation2'])->get(); 

$merged = $hotels->merge($tours)->all(); 

またモデルクエリの結果は自動的にコレクションに入れているので、あなたがする必要はありません。この(ロードしたいリレーションをwith(...)の内容を置き換える)のような、それ書き換え

collect(...)部分。

+0

ありがとう!これは動作しています – aleXela

+0

それ以外の場合は動作しません。なぜ – aleXela

3

2つのもの。

最初にEloquentクエリを実行すると、Collectionインスタンスが自動的に返されます。あなた自身Collectionの中に結果をラップする必要はありません。

第2に、熱心な負荷モデルの関係には、withを使用して指定する必要があります。

など。

$hotels = Hotels::with('location', 'rooms')->get(); 
$tours = Tours::with('location')->get(); 
$merged = $hotels->merge($tours); 
+1

おかげで多くを得ることができない!これは問題を抱えている – aleXela

+0

です。何らかの理由でメソッドのマージが機能しません。 最初のコレクションのみを返します。なぜどんなアイデア? – aleXela

+0

$ホテル=収集するホテル::( '特別写真') - > get(); $ツアー=収集(ツアー)::( '特別写真' - > get(); $ merged = $ hotels-> ($ツアー)をマージ; は良い作業 おかげ – aleXela

関連する問題