1
我正在使用Eloquent的->merge()
method。如果僅通過->get()
獲得收藏,它看起來效果很好。當從一列中提取數據時,雄辯合併()未按預期合併
但是,當我添加select('some_column')
時,得到的集合有意想不到的結果。
例如,我得到以下三個集合:
$collection_1 = Model_1 ::select('column')->whereNotNull('column2')->distinct()->get();
$collection_2 = Model_2 ::select('column')->whereNotNull('column2')->distinct()->get();
$collection_3 = Model_3 ::select('column')->whereNotNull('column2')->distinct()->get();
$options = $collection_1->merge($collection_2)->merge($collection_3);
在選項,我只能得到一個值,而不是所有的價值預期。
對於$collection_1->count()
我得到10條記錄。 對於$collection_2->count()
我得到8條記錄。 對於$collection_3->count()
我得到12條記錄。
但在生成的(和使用merge()
)我只得到一個記錄!
我錯過了什麼?
可能的解決方法
我用->lists()
代替->get()
爲表示in this answer。
所以這就是我的了:
$collection_1 = Model_1 ::whereNotNull('column2')->distinct()->lists('column');
$collection_2 = Model_2 ::whereNotNull('column2')->distinct()->lists('column');
$collection_3 = Model_3 ::whereNotNull('column2')->distinct()->lists('column');
$options = $collection_1->merge($collection_2)->merge($collection_3);
$options = $options->unique()->sort();
,這把招到目前爲止☻
在第一種情況下(只有1條記錄的情況下),你可以用'dd()'輸出嗎? – Vucko