【发布时间】:2014-04-18 21:42:00
【问题描述】:
我正在开发一个应用程序,其中一部分需要使用 AND 搜索同一模型上的多个不同字段 - 又名查找年龄 whereBetween $from 和 $to AND 其中性别为 $gender。我迷路的地方是这个模型与类别有多对多的关系,我需要在同一个查询中按类别过滤。我试图在一个查询中执行此操作,因为它需要非常快。
这是我目前所拥有的:
$categories = Input::get('categories');
$query = Program::with('categories')->whereIn('category', $categories)->query();
if ($ages = Input::get('ages')) {
$query->whereBetween('age',array($from,$to));
}
if ($gender = Input::get('gender')) {
$query->where('gender','like', $gender);
}
// Executes the query and fetches it's results
$programs = $query->get();
我从许多不同的来源将其汇总在一起,我想知道这是否有效,或者它是否是最有效的方法。当然有一个表programs,一个表categories,还有一个表program_category,列有id、program_id和category_id。
提前感谢您的帮助!
【问题讨论】:
标签: php sql orm laravel eloquent