按关系排序与分页拉拉威尔雄辩



我有下面的关系,应用程序属于用户。

用户表

ID | Name
1 | Danny
2 | Mark

应用程序表

ID | user_id
1 | 1
2 | 2

Application.php

public function user()
{
return $this->belongsTo(User::class);
}

我正在尝试按用户名对应用程序进行排序,并对结果进行分页。我尝试了下面的代码,分页正在工作,但按顺序没有任何效果。

$query = Application::query();
$query = $query->with(['user' => function ($query){
$query->orderBy('name', 'DESC');
}]);
$query = $query->paginate(10);

尝试使用内部联接和按关系排序列:

$applications = Application::select('*')
->join('authors', 'applications.user_id', '=', 'users.id')
->orderBy('authors.name', 'DESC')
->paginate(10);

试试这个:

Application::join('users', 'applications.user_id', '=', 'users.id')
->orderBy('users.name','desc')
->with('users')
->get();

最新更新