是否可以使用Laravel中的querybuilder进行加载?
正如人们可以在上面看到,有一个“eagerLoad”部分和QueryBuilder的接受呼叫$query->with('relation')
但产生以下错误:Method addEagerConstraints does not exist.
我试图找到在这个问题上的一些文件,但没找不到多少。在这种情况下是否可以使用急切加载?如果是这样,有谁可以告诉如何?
更新
正如一些人指出,这是可能的,错误是由在我的代码中的另一个错误引起的。下面是一些样本:
// Querybuilder
$query->select([
'persons.id as alumni_id',
...
]);
$query->where('...'); // Based on search parameters
$query->groupBy('alumni_id');
$query->with('relation');
$result = collect($query->get());
// Model
public function relation()
{
// Note: relation does have a column person_id
return $this->hasMany(Relation::class, 'person_id', 'alumni_id')->get();
}
主要生产
BadMethodCallException in Macroable.php line 81: Method addEagerConstraints does not exist.
显示相关的代码,请。 –
这是可能的,看看文档[Eager Loading](https://laravel.com/docs/5.2/eloquent-relationships#eager-loading)文档。您遇到的错误与其他内容有关,您应该显示相关的代码,以使我们能够了解上下文。 – Desh901
@ Desh901:感谢您指出这是可能的,因为几乎没有文档可以找到。我已经添加了一些代码示例,请确保让我知道缺少任何东西。 –