laravel orm where条件失效的奇葩问题。

abstract class BaseRepositoryApi extends \Prettus\Repository\Eloquent\BaseRepository
{
    public function paginate($perPage = null, $page = null, $columns = ['*'])
    {
        $userModel = new User();
        $userModel->where('user_type','seller');
        $result = $userModel->paginate($perPage,$columns,null,$perPage);
        return $result;
    }
}

这样写,调用这个方法的时候,where条件是不会生效的。

但是,如果是将paginate方法里面的代码直接写在controller里面,where条件就能正确应用。

这特么到底是为毛?

我这段代码不是写在controller里面的

阅读 3.3k
2 个回答

按照这个试下

        $userModel = new User();
        $query = $userModel->where('user_type','seller');
        $result = $query->paginate($perPage,$columns,null,$perPage);

另外没理解为啥要这样写,既然用了PrettusRepository 这个包应该去遵循这个包的写法。

在就是 BaseRepositoryApi 这个基类的 paginate 方法为什么要直接取User的数据。

Orm里的query builder是单例的吧貌似

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题