laravel - Laravel 6 id 按关系排序后更改
问题描述
我不知道怎么解释...
在修补匠上:
$m = App\Models\Mobiliari::Buscar('5')
$m->get()
=> Illuminate\Database\Eloquent\Collection {#3038
all: [
App\Models\Mobiliari {#3051
id: "5",
entitat_id: "3",
tipus_mobiliari_id: "2",
descripcio: null,
data_compra: null,
proveidor_id: "2",
factura: null,
cost: ".0000",
ubicacio_id: "2",
},
],
}
Buscar 是一个过滤某些字段的函数:
public function scopeBuscar($query, $filtre)
{
if ($filtre)
{
return $query->where('mobiliari.id', $filtre)
->orWhere('descripcio', 'like', '%'.$filtre.'%')
->orWhereHas('Entitat', function($q) use ($filtre) {
$q->where('entitat', 'like', '%'.$filtre.'%');
})
->orWhereHas('TipusMobiliari', function($q) use ($filtre) {
$q->where('tipus', 'like', '%'.$filtre.'%');
})
->orWhereHas('Proveidor', function($q) use ($filtre) {
$q->where('proveidor', 'like', '%'.$filtre.'%');
})
->orWhereHas('Ubicacio', function($q) use ($filtre) {
$q->where('edifici', 'like', '%'.$filtre.'%')
->orWhere('ubicacio', 'like', '%'.$filtre.'%');
});
}
}
然后,当尝试通过相关表对结果进行排序时,ID 更改 te 值
$m->join('entitat', 'mobiliari.entitat_id', '=', 'entitat.id')->orderBy('entitat.entitat','asc')->get()
=> Illuminate\Database\Eloquent\Collection {#3041
all: [
App\Models\Mobiliari {#3040
id: "3",
entitat_id: "3",
tipus_mobiliari_id: "2",
descripcio: null,
data_compra: null,
proveidor_id: "2",
factura: null,
cost: ".0000",
ubicacio_id: "2",
entitat: "UAB Idiomes",
rao_social: "Escola d'Idiomes Moderns Casa Convalescència SL",
},
],
}
我捕获了使用 DB::enableQueryLog(); 生成的查询 和 dd(DB::getQueryLog()),在 de SQL Server 上执行它并返回正确的 ID ...
任何人都知道或可以解释为什么 ID 会发生变化?
解决方案
当您连接表时,id 可能不明确,并且Laravel
ORM 甚至会从您的连接中获取其中一个 id。
在当前表中添加 select() 将帮助您解决问题。如果需要,您仍然可以选择额外的列,但如果使用其他表中的 id 重命名SQL
.
->select('mobiliari.*');
所以试试下面的代码。
$m->join('entitat', 'mobiliari.entitat_id', '=', 'entitat.id')
->orderBy('entitat.entitat','asc')
->select('mobiliari.*')
->get();
推荐阅读
- javascript - 有没有什么优雅的方式来写边框悬停高亮效果?
- wordpress - Woocommerce 产品自定义评论标签挂钩
- c++ - c++ 有数学问题的函数
- jquery - iPhone“来自消息”粘贴到文本框不触发可捕获事件
- r - 将警告消息捕获到 RR 中的变量中
- python - 我在字符串中找到子字符串的频率有什么问题
- swiftui - 在设置后但在绘制视图之前重置 environmentObject 的成员变量
- c++ - C++ 到达类/结构域
- html - 与 div 在同一行显示图像,而不是在其下方
- javascript - 为什么 JavaScript 禁止将 Nullish 运算符 (??) 与 And (&&)、OR (||) 运算符结合使用?