Laravel: объединить динамический прицел и с

Я пытаюсь загрузить динамическую область в Laravel 4.2

У меня есть следующий класс Eloquent:

class Project extends Eloquent {

protected $table = 'projects';

public function subProjects() {
return $this->hasMany('SubProject');
}
}

На Subproject класс, у меня есть следующая динамическая область:

public function scopeForUserInPeriod($query, $user, $interval) {
return $query->whereHas('hourRegistrations', function($query) use($user, $interval) {
$query->where('user_id', $user->id)->whereBetween('date', [$interval->from, $interval->to]);
});
}

Теперь я хотел бы загрузить область, когда я загружаю свои проекты, поэтому я делаю что-то вроде.

Project::with('SubProjects.ForUserInPeriod', $user, $period);

К несчастью, with принимает только список отношений для загрузки. Кажется, я не могу найти никаких указаний на то, как я должен загружать области, которые принимают аргументы. 🙁

2

Решение

Вы не пропустите ничего, кроме отношений, когда ленивая / ленивая загрузка.

Точки используются для обозначения вложенных отношений, а не методов запроса.

Это то, что вы хотите:

Project::with(['subProjects' => function ($q) use ($user, $period) {
$q->forUserInPeriod($user, $period);
}])->get();
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]