鍍金池/ 問答/PHP/ laravel orm where條件失效的奇葩問題。

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;
    }
}

這樣寫,調(diào)用這個方法的時候,where條件是不會生效的。

但是,如果是將paginate方法里面的代碼直接寫在controller里面,where條件就能正確應用。

這特么到底是為毛?

我這段代碼不是寫在controller里面的

回答
編輯回答
悶騷型

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

2017年10月25日 08:23
編輯回答
氕氘氚

按照這個試下

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

另外沒理解為啥要這樣寫,既然用了PrettusRepository 這個包應該去遵循這個包的寫法。

在就是 BaseRepositoryApi 這個基類的 paginate 方法為什么要直接取User的數(shù)據(jù)。

2017年2月15日 16:29