【发布时间】:2019-05-25 18:32:14
【问题描述】:
我正在使用 Laravel 5 的 laratables。在我的PartnersVehicles 模型中,我有这个功能
public static function laratablesQueryConditions($query)
{
$uid = Auth::id(); //user ID
$pid = Partners::where('uid', $uid)->first(); //get partner ID
return $query->select('partners_vehicles.id', 'partners_vehicles.year', 'vehicle_makes.make', 'partners_vehicles.model', 'vehicle_colors.color', 'partners_vehicles.created_at')
->join('vehicle_makes', 'vehicle_makes.id', '=', 'partners_vehicles.make')
->join('vehicle_colors', 'vehicle_colors.id', '=', 'partners_vehicles.color')
->where('partners_vehicles.partner_id', $pid->id);
}
表格加载正常,但是当我尝试在搜索框中进行 ajax 搜索时,出现以下错误
违反完整性约束:1052 列“make”在 where 子句中不明确(SQL:从 partners_vehicles 内部连接 vehicle_makes 在 vehicle_makes.id = partners_vehicles.@ 上选择计数(*)作为聚合987654328@ 内部连接 vehicle_colors on vehicle_colors.id = partners_vehicles.color where partners_vehicles.partner_id = 7 和 (year like %2% or @987654333或 model 喜欢 %2% 或 color 喜欢 %2%))
我尝试将我的选择更改为这个,但仍然没有运气
select('partners_vehicles.id', 'partners_vehicles.year', 'vehicle_makes.make AS `make`', 'partners_vehicles.model', 'vehicle_colors.color', 'partners_vehicles.created_at')
知道如何解决这个问题吗?我错过了什么?谢谢
【问题讨论】:
-
它似乎对括号中的 WHERE 子句部分不满意,特别是“make”列。 WHERE 子句的那部分究竟是在哪里创建的?
-
@knot22 我不知道,似乎找不到它的生成位置:(
标签: php laravel datatables