Как устранить нарушение ограничения целостности: 1052 Столбец 'agent_id', где предложение неоднозначно - PullRequest
0 голосов
/ 06 мая 2019

Нарушение ограничения целостности: 1052 Столбец 'agent_id', в котором предложение неоднозначно

Я пробовал, но все еще не могу найти ошибку этой таблицы данных

public function customerOrderList(Request $request, $agent_id){
    $customer_orders = CustomerOrder::join('agent as a', 'a.agent_id','=','customer_order.agent_id')
    ->select('customer_order.*', 'a.name as agent_name')
    ->where('agent_id', $agent_id)
    ->get();

    $datatables = DataTables::of($customer_orders)
    ->addColumn('actions', function($customer_order){
      $html ='';
      $view = route('customer-order.invoice', $customer_order->doc_id);
      $html .= "<a class='btn btn-primary btn-sm' href='$view'><i class='far fa-fw fa-eye'></i></a>";

      return $html;
    })
    ->rawColumns(['actions']);

    return $datatables->make(true);
  }

-show datatable

1 Ответ

0 голосов
/ 06 мая 2019

Это означает, что несколько таблиц в вашем запросе имеют один и тот же столбец agent_id, и ваш запрос не может определить, какую из них использовать.Вы использовали 'customer_order.agent_id' в одном предложении, но только 'agent_id' в другом.

При использовании ->join() иногда требуется быть как можно более конкретным с вашими ссылками (зависит от выбранной структуры таблицы / столбцов и т. Д.):

$customer_orders = CustomerOrder::join('agent as a', 'a.agent_id','=','customer_order.agent_id')
  ->select('customer_order.*', 'a.name as agent_name')
  ->where('customer_order.agent_id', $agent_id) // Here, add table name before `agent_id`, likely `customer_order`
  ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...