为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 连接查询在传递变量时不起作用

Laravel 连接查询在传递变量时不起作用

PHP
胡子哥哥 2023-03-11 16:35:22
我想通过传递一个 php varaiable 在 laravel 中执行一个连接语句,当传递一个 varibale 时它不起作用。以下是我的代码  $loc_services = Clinic::select('*')    ->join('locations', 'locations.clinicID', '=', 'clinics.clinicID')    ->join('location_services', 'location_services.locationID', '=', 'locations.locationID')    ->join('services', 'services.serviceID', '=', $services_id)    ->get();我尝试将其作为声明执行并得到以下信息select * from `clinics` inner join `locations` on `locations`.`clinicID` = `clinics`.`clinicID` inner join `location_services` on `location_services`.`locationID` = `locations`.`locationID` inner join `services` on `services`.`serviceID` = `10`当我直接在 phpmyadmin 中执行它时,它返回 fllowing 错误Column not found: 1054 Unknown column '10' in 'on clause', i found that error is triggering because `10` is inside  `''` quotes, how can i execute this
查看完整描述

2 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

你必须$services_id在云不在的地方通过join on


$loc_services = Clinic::select('*')

->join('locations', 'locations.clinicID', '=', 'clinics.clinicID')

->join('location_services', 'location_services.locationID', '=', 'locations.locationID')

->join('services', 'services.serviceID', '=', 'clinics.services_id')//service_id column in Clinic

->where('services.serviceID',$services_id)    

->get();


查看完整回答
反对 回复 2023-03-11
?
九州编程

TA贡献1785条经验 获得超4个赞

join 中的第三个参数将被视为列。如果你想加入具有特定值的列,你可以像这样使用闭包:


$loc_services = Clinic::select('*')

    ->join('locations', 'locations.clinicID', '=', 'clinics.clinicID')

    ->join('location_services', 'location_services.locationID', '=', 'locations.locationID')

    ->join('services', function($join) use ($service_id) {

         $join->where('services.serviceID', $service_id);

      })

    ->get();

原始 sql 将是:


inner join `services` on `services`.`serviceID` = 10


查看完整回答
反对 回复 2023-03-11
  • 2 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信