Heim > Fragen und Antworten > Hauptteil
Ich habe viele Methoden ausprobiert, aber nichts hat diesen Fehler behoben. Was soll ich tun?
Es gibt einen Code
Controller
$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();
Wenn ich $ticketId hinzufüge, funktioniert es und zeigt an, dass die ID das ist, was ich möchte, aber beim Beitreten funktioniert es nicht.
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();