【问题标题】:Laratable ambiguous colums on search搜索中的 Laratable 模棱两可的列
【发布时间】: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_makesvehicle_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


【解决方案1】:

试试这个代码

public static function laratablesQueryConditions($query)
{
    $uid = Auth::id(); //user ID
    $pid = Partners::where('uid', $uid)->first(); //get partner ID
    $res=DB::table('partners_vehicles')
         ->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)
         ->get();
   return $res;
} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 2011-04-20
    • 2011-09-07
    • 2011-01-09
    相关资源
    最近更新 更多