我有一个要基于关系属性进行排序的模型。

主模型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/

10-15 02:19