【发布时间】:2019-03-15 09:07:10
【问题描述】:
我搜索了一个模型(启动),下一步是按 DESC 或 ASC 排序搜索结果(现在没关系)
我当前的代码是:
$startups = Startup::whereHas('category', function ($query) use ($search, $sort_type) {
$query
->where('name', 'like', "%$search%")
->orderBy('name', $sort_type);
})
->orWhere('description', 'LIKE', "%$search%")
->orWhere('url', 'LIKE', "%$search%")
->get();
return StartupResource::collection($startups);
代码说明: 正如您在开始时看到的那样,我正在使用“whereHas”来搜索相关模型中的巧合 - “类别”。 然后在“whereHas”内部我试图应用 'orderBy('name', $sort_type)' 但它不能正常工作(它不按类别排序)
我知道我们可以在 Startup 模型中创建方法并在方法内部对其进行排序,但问题是我必须将变量传递给方法($sort_type,$search)而且我不知道该怎么做这个
那么在我的情况下,如何按 ASC 或 DESC 对 Startups 模型(包括相关 Category 模型)进行排序?
非常感谢你们的任何想法和帮助!
【问题讨论】:
-
category是BelongsTo关系吗?每个创业公司都有一个类别吗? -
一个类别可以有很多 Startups :)
-
这并不能真正回答我的问题,尤其是第二个问题。
-
每个创业公司都有一个类别,所以是的,它确实如此:)