Eloquent hasManyThrough

时间:2014-05-27 18:33:12

标签: php laravel

我有三张桌子:

studios, users, programs

表程序属于用户用户,表用户属于工作室。

我想从带有来自工作室的id的表中获取所有程序,其中包含程序的where子句。

我在工作室班级

public function programs() { return $this->hasManyThrough('Studio\Program', 'Studio\User')->with('user'); }

我用

Studio::programs->where('date', '=', $date)->where('room', '=', $room)

Laravel得到Call to undefined method Illuminate\Database\Eloquent\Collection::where()

如何从具有指定工作室ID的表程序中获取所有程序?

修改

Studio::find(1)->programs()->where('date', '=', $date)->where('room', '=', $room);工作,但所有元素都是合并的。

谢谢!

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

$studios = Studio::with('programs' => function($query) use ($date) {
    $query->where('date', $date);
})->where('room', $room)->get();