在使用select
或addSelect
子句後,通過Eloquent(類似於關係如何執行)獲取某個字段到單個屬性中是否可能?有沒有辦法將選定的屬性合併到返回的Laravel模型中的特定屬性中?
我有3種型號,說模型一個,乙和Ç。我正在編寫一個RESTFUL API來檢索已過濾的模型集合A。模型甲和乙有一對一的關係(甲屬於乙),和模型乙和Ç也有一對一的關係(乙所屬到C)。
這裏是我到目前爲止已經取得的成就:
$builder->select(A.*);
...
if (array_key_exists('with_C', $options) || array_key_exists('C_name', $options)) {
$builder->join('B', 'A.B_id', '=', 'B.id');
$builder->join('C', 'B.C_id', '=', 'C.id');
if (array_key_exists('C_name', $options)) {
$terms = explode(' ', $options['C_name']);
foreach ($terms as $term) {
$builder->where('C.C_name', 'like', "%$term%");
}
}
if (array_key_exists('with_C', $options) && $options['with_C']) {
$builder->addSelect('C.*');
}
}
這似乎檢索所有我想要的信息,但是當我最終->get()
後傾出所有的數據,所有的C.*
屬性只是轉儲(並且一些在屬性屬性中覆蓋A.*
屬性,例如ID)。
是否有任何可能的方式將C *屬性分組到檢索模型中的C屬性 - 類似於雄辯關係如何執行它?