每次更改特定模型的查询构建器 - Laravel 5.3

时间:2016-09-16 10:37:49

标签: php laravel laravel-5.3

每当我获得新模型时,如何更改查询构建器?

我发现压倒下面的方法有效,但我这样做并不好。有更好的方法吗?

所以我希望每次都为特定模型执行->join()

!! 我不想使用protected $with = [];属性,因为我不想在没有必要的情况下执行额外的查询。

public function newQueryWithoutScopes()
{
    $builder = $this->newEloquentBuilder(
        $this->newBaseQueryBuilder()
    );

    // Once we have the query builders, we will set the model instances so the
    // builder can easily access any information it may need from the model
    // while it is constructing and executing various queries against it.
    return $builder->setModel($this)->join('join statement comes here')->with($this->with);
}

1 个答案:

答案 0 :(得分:1)

要在每次使用模型时影响查询,可以使用newQuery方法。

close project

但这可能会打破Eloquent,因为你的模型不再代表你的数据库模型;它现在是两个独立模型的Franken模型。