Laravel 5.4雄辩的关系和局部范围

时间:2018-07-17 02:47:36

标签: laravel-5 relationship

我使用laravel 5.4,有2个模型:User和Provinces。

在模型用户中:

print(d{0})
# with a result
{1.2 , 1.0}
#   or  say I want to calculate slop between two points
sqrt((d{0, [1],[]} - d{2, [1],[]})sqrd + (d{0, [],[1]} - d{2, [], [1]})sqrd)
# with a result 
3.2

在控制器用户中:

    public function scopeWithSort($query, $sorting, $by)
    {
        return $query->orderBy($sorting, $by);
    }
    public function province()
    {
        return $this->belongsTo('App\Province', 'loction_id');
    }

如何使用此关系进行排序。谢谢进步!

1 个答案:

答案 0 :(得分:0)

您必须使用其他方法。

您可以使用修改后的withCount()订购查询:

if ($request->sorting == 'location_id') {
    $query->withCount(['province' => function($query) {
        $query->select('name');
    }])->orderBy('province_count', $request->by);
}

或者您对查询结果进行排序:

$users = $query->get();
if ($request->sorting == 'location_id') {
    $users = $users->sortBy('province.name', $request->by);
}