2017-12-05 4 views
1

建物と回路をリストに表示しようとしています(合計で3つ、「updated_at」という列でソートされています)。問題は、それらが同じテーブルにないことです。私はテーブルcircuitsとテーブルbuildingsを持っています。2つのクエリを1つにまとめてソートする

私はこれを実行しようとしました:私は私のvar_dumpをやっていると私は私がforeachの操作を行うときに、データにアクセスする方法を知っているとき

$buildings = Building::published()->limit(3)->get(); 
$circuits = Circuit::published()->limit(3)->get(); 

$merged = $buildings->merge($circuits); 

$this->data['buildingsAndCircuits'] = $merged->all(); 

は、私はすべてが権利を取得。しかし、それは私が望むことをしません。

私はそれらを(updated_atによって)並べ替え、6つではなくてほしいと思います。

これを行う方法はありますか?

私は$mergeにQueryBuilderとのような条件を作ってみましたが、それはあなたがして、クエリが実行された各クエリにgetと呼ばれたら

$this->data['buildingsAndCircuits'] = $merged->orderBy('updated_at', 'DESC')->limit(3)->all(); 

はあなたに

答えて

1

非常に感謝動作しません。結果が返されます。 orderByは、$buildings, $circuits$mergedのコレクションはコレクションなので、それ以降は機能しません。

ただし、これを行うことができます:あなたはdocumentation

でコレクション上で行うことができます他に何

$buildings = Building::published()->limit(3)->get(); 
$circuits = Circuit::published()->limit(3)->get(); 

$merged = $buildings->merge($circuits)->sortByDesc('updated_at'); 

$this->data['buildingsAndCircuits'] = $merged->all(); 

チェック

関連する問題