我嘗試了很多方法,但沒有修復這個錯誤,我該怎麼辦?
有程式碼
控制器
$ticketId = Tickets::get('id'); $assig_user_name = DB::table('tickets') ->join('users', 'tickets.assigned_id', '=', 'users.id') ->select('users.id','users.name') ->where('tickets.id', '=', $ticketId) ->get();
當我新增 $ticketId 時,它可以工作並顯示 id 是我想要的,但在加入時它不起作用。
P粉2897750432024-04-01 21:17:27
$ticketId 傳回集合,如果您試圖取得所有擁有票證的用戶,那麼在這種情況下您可以執行類似的操作
$ticketId = Tickets::select('id')->get(); $assig_user_name = DB::table('tickets') ->join('users', 'tickets.assigned_id', '=', 'users.id') ->select('users.id','users.name') ->wherein('tickets.id',[$ticketId]) ->get();
P粉3099896732024-04-01 12:33:37
SQLSTATE[HY093]:無效的參數編號通常表示您在查詢中提供了錯誤數量的佔位符,並且佔位符的數量與您嘗試綁定到這些佔位符的值的數量之間存在不符.
您可以嘗試:
$assig_user_name = DB::table('tickets') ->join('users', 'tickets.assigned_id', '=', 'users.id') ->select('users.id','users.name') ->where('tickets.id', '=', ':ticketId') ->setBindings([':ticketId' => $ticketId]) ->get();
另一個問題可能是 $ticketId 是一個數組,因此您需要:
$assig_user_name = DB::table('tickets') ->join('users', 'tickets.assigned_id', '=', 'users.id') ->select('users.id','users.name', 'tickets.*') ->whereIn('tickets.id', $ticketId->pluck('id')->toArray()) ->get();