Maison > Questions et réponses > le corps du texte
J'ai essayé de nombreuses méthodes mais rien n'a corrigé cette erreur, que dois-je faire ?
Il y a un code
Contrôleur
$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();
Quand j'ajoute $ticketId, cela fonctionne et montre que l'identifiant est ce que je veux, mais lorsque je rejoins, cela ne fonctionne pas.
P粉2897750432024-04-01 21:17:27
$ticketId renvoie une collection, si vous essayez d'obtenir tous les utilisateurs qui ont des billets, dans ce cas, vous pouvez faire quelque chose comme
$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] : un numéro de paramètre invalide signifie généralement que vous avez fourni un nombre incorrect d'espaces réservés dans la requête et qu'il existe une inadéquation entre le nombre d'espaces réservés et le nombre de valeurs que vous essayez de lier à ces espaces réservés.
Vous pouvez essayer :
$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();
Un autre problème pourrait être que $ticketId est un tableau, vous avez donc besoin de :
$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();