laravel查询构建器,可选搜索参数

时间:2014-08-04 08:38:28

标签: laravel eloquent fluent

Laravel新手寻找指导。任何人都可以告诉我将可选的已发布搜索参数添加到以下Eloquent查询并返回所有相关数据和分页的最佳方法吗?可选的搜索参数是外键; country_id,season_id和parameter_id。

$dataitems = Dataitem::orderBy('name')->with('country')->with('season')->with('parameter')->paginate(10);

我正在阅读文档,并且看到了流畅的查询构建器,我只是在努力重新创建这个很好的分页查询。

非常感谢。

1 个答案:

答案 0 :(得分:2)

我不确定我是否理解你想要的东西。但我会做这样的事情:

  • 创建基本的雄辩查询:

    $query = Dataitem::orderBy('name');
    
  • 如果您有特定参数,请将条件添加到existant查询中。 如果阻止所有可选参数,则可以重复此操作。

    if (Input::has('country_id'))
    {
        $query->whereHas('country', function($q){
            $q->where('id', '=' ,Input::get('country_id'));
        });
    }
    
  • 当你完成后,分页:

    $query->paginate(10);