我完全在undefined variable $jenis_mobil
上获得$q->where('name', $jenis_mobil->name)
$jenis_mobil = Car_class::find($request->jenis_mobil);
$dari_kota = City::find($request->dari_kota);
$vehicles = Vehicle::whereHas('car', function($q){
$q->whereHas('car_class', function($q){
$q->where('name', $jenis_mobil->name);
});
})
->whereHas('partner', function($q) {
$q->whereHas('kota_pool', function($q){
$q->where('name', $dari_kota->name);
});
})
->where('year', $request->tahun_mobil)
->get();
我的代码有问题吗?我认为是因为
$jenis_mobil
没有传递给whereHas
最佳答案
您应该使用use()
将变量传递到闭包中:
$vehicles = Vehicle::whereHas('car', function($q) use($jenis_mobil) {
$q->whereHas('car_class', function($q) use($jenis_mobil) {
$q->where('name', $jenis_mobil->name);
});
})
->whereHas('partner', function($q) use ($dari_kota) {
$q->whereHas('kota_pool', function($q) use ($dari_kota) {
$q->where('name', $dari_kota->name);
});
})
->where('year', $request->tahun_mobil)
->get();
关于Laravel 5.2 : Undefined Variable in WhereHas,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40446296/