duankui1532 2019-05-25 18:32
浏览 35

关于搜索的Laratable模糊专栏

I'm using Laravel 5's laratables. and in my PartnersVehicles model i have this function

    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);

    } 

the table loads fine, but when I try and do an ajax search in the search box, i get this error below

Integrity constraint violation: 1052 Column 'make' in where clause is ambiguous (SQL: select count(*) as aggregate from partners_vehicles inner join vehicle_makes on vehicle_makes.id = partners_vehicles.make inner join vehicle_colors on vehicle_colors.id = partners_vehicles.color where partners_vehicles.partner_id = 7 and (year like %2% or make like %2% or model like %2% or color like %2%))

i tried changing my select to this, but still no luck

select('partners_vehicles.id', 'partners_vehicles.year', 'vehicle_makes.make AS `make`', 'partners_vehicles.model', 'vehicle_colors.color', 'partners_vehicles.created_at')

any idea how to fix this? what am i missing? Thanks

  • 写回答

1条回答 默认 最新

  • dqkxo44488 2019-05-28 06:46
    关注

    Try this code

    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;
    } 
    
    评论

报告相同问题?

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图