我需要按id对我的任务进行排序,当所有任务都来自一个标签时,它可以正常工作,但当有多个标签时我会得到类似于my Controller 下的结果
我的控制器:
$Task = Enrollee::
->with(['path.pathtags' => function ($q) use ($TagArray)
{
$q->with(['Tasks' => function ($q) use ($TagArray)
{
$q->has('tasktags', '=', 2)
->orderBy('id', 'asc')
->whereDoesntHave(
'tasktags',
function ($query) use ($TagArray) {
$query->whereNotIn('name', $TagArray);
}
)
->with('tasktags')->orderBy('id', 'asc');
}]
)->orderBy('id', 'desc');
}])
所以我的输出就像
Tag : Art
Post id : 8
Post Name : Post About art..
.................
Tag : fun
Post id : 9
Post Name : Post About fun..
...................
Tag : Food
Post id : 11
Post Name : Post About food..
所以我需要通过id 正确获取它们
11
9
8
您对数据进行了多次排序。我假设,如果您有不同的标签,那么任务首先是按照标签id升序排列的。然后按照任务ID的降序对其进行排序。试着添加更多共享相同标签的任务,看看我的意思。
$Task = Enrollee
->with(['path.pathtags' => function ($q) use ($TagArray)
{
$q->with(['Tasks' => function ($q) use ($TagArray)
{
$q->has('tasktags', '=', 2)
->orderBy('id', 'asc')
->whereDoesntHave(
'tasktags',
function ($query) use ($TagArray) {
$query->whereNotIn('name', $TagArray);
}
)
->with('tasktags')->orderBy('id', 'asc');
}]
)->orderBy('id', 'desc');
}])