【发布时间】:2020-02-21 18:48:20
【问题描述】:
这是我的查询代码:
$apartments = DB::table('apartments')
->when($request->filled('wifi'), function ($query) {
$query->join('apartment_service' , function($join){
$join -> on('apartments.id' , '=' , 'apartment_service.apartment_id')
->where('apartment_service.service_id' , '=' , '1');
});
})
->when($request->filled('pool'), function ($query) {
$query->join('apartment_service' , function($join){
$join -> on('apartments.id' , '=' , 'apartment_service.apartment_id')
->where('apartment_service.service_id' , '=' , '2');
});
})
->when($request->filled('sea'), function ($query) {
$query->join('apartment_service' , function($join){
$join -> on('apartments.id' , '=' , 'apartment_service.apartment_id')
->where('apartment_service.service_id' , '=' , '3');
});
})
->when($request->filled('Terrace'), function ($query) {
$query->join('apartment_service' , function($join){
$join -> on('apartments.id' , '=' , 'apartment_service.apartment_id')
->where('apartment_service.service_id' , '=' , '5');
});
})
->when($request->filled('sauna'), function ($query) {
$query->join('apartment_service' , function($join){
$join -> on('apartments.id' , '=' , 'apartment_service.apartment_id')
->where('apartment_service.service_id' , '=' , '6');
});
})
->get();
return response()-> json($apartments);
我对数据透视表的错误在哪里?
如果我只选择一项服务,则查询有效,但当我选择两项或更多服务时,查询无效。
【问题讨论】:
-
除非绝对必要,否则请不要将信息共享为图像。请参阅:meta.stackoverflow.com/questions/303812/…、idownvotedbecau.se/imageofcode、idownvotedbecau.se/imageofanexception。
-
“不起作用”是什么意思?你得到一个错误或只是空的结果?你试过viewing the SQL 看看是否有意义吗?
-
您应该编辑您的问题以删除 SQL 标记,因为您不是在编写 SQL,而是添加 PHP 标记,因为这是 PHP!
标签: php laravel query-builder