我有一个要基于关系属性进行排序的模型。
主模型Resultado
具有类型respondente
的关系belongsTo
,而respondente
具有关系usuario
。
我想获取具有这些关系的Resultado
并按usuario
name
属性(列)对结果进行排序。
我试过了
$resultados = Diagnostico\Resultado::with('respondente.usuario')
->orderBy('usuarios.name')->get();
但这引发了“找不到列'usuarios.name'” mysql错误。
如何根据
Resultado
模型的关系对其进行排序?编辑:
Resultado
模型的表是diag_resultados
。正如我在评论中所写,我必须使用join来获得正确的结果。 最佳答案
您需要进行子查询
$resultados = Diagnostico\Resultado::with(['respondente.usuario' => function ($query) {
$query->orderBy('usuarios.name', 'asc');
}])->get();
这样的东西应该工作
关于php - Laravel 5排序具有关系的 Eloquent 模型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35481801/