如何解决方法命令在laravel上不存在?

时间:2017-04-11 14:54:29

标签: laravel repository laravel-5.3 laravel-eloquent

我使用这个包:https://github.com/andersao/l5-repository

我的用户存储库是这样的:

public function getList($year)
{
    $query = parent::findWhere(['year' => $year])
                 ->orderBy('updated_at')
                 ->paginate(10);
    return $query;
}

执行时,会出现如下错误:

  

方法orderBy不存在。

我在文档中看到,存在orderBy

我该如何解决?

3 个答案:

答案 0 :(得分:0)

如果您要查看$model = $this->model->get($columns); 方法,您会看到它执行查询:

orderBy()

因此,您paginate()之后将无法使用findWhere()def event = new EventController.populate()

答案 1 :(得分:0)

findWhere执行查询并使用get()获取您的值。

尝试将您的代码更改为:

public function getList($year)
{
    $query = parent::where('year', '=>', $year)
             ->orderBy('updated_at')
             ->paginate(10);
    return $query;
}

答案 2 :(得分:-1)

使用类似的东西进行复合搜索

$posts = $this->repository->scopeQuery(function($query){
        return $query->orderBy('name','asc');
      
    })->findByField('user_id',$dataForm['user_id']);