Mysql
 sql >> Base de données >  >> RDS >> Mysql

Paramètres conditionnels du générateur de requêtes

Je pense que vous avez besoin de la condition "et où" ici. Ou où signifie correspondre à l'une ou l'autre ou aux deux règles. "Et où" ne fonctionnerait que si les deux règles correspondent.

Je vous suggère donc d'essayer ceci :

$users = User::with('skills')
->with('skills')
->with('positions');
if($skills)
{
    $users->whereHas('skills', function($thisquery) use ($skills)
    {
       $thisquery->whereIn('name', $skills);
    });
 }

if($positions)
{
    $users->whereHas('positions', function($thisquery) use ($positions)
    {
         $thisquery->whereIn('name', $positions);
    });
}
$users = $users->get();