Je suis en train de construire requête dynamique à l'aide des entrées de formulaire comme ci-dessous:injection dynamique de requête éloquente ne fonctionne pas dans Laravel
$query = new Doctor();
if (!empty($request->input('city'))) {
$city = $request->input('city');
//Search for any thing like doctor name or last name
$query->where('city_id', $city);
}
//Get doctor names result in collection type
$col = $query->where('level','LIKE','%%')->orderBy($Order_By, $Sort_Type)->toSql();
problème est la partie qui vérifient la ville et injectez ville où la clause en question ne fonctionne pas et ce que je reçois comme une requête est:
"select * from `doctors` where `level` LIKE ? order by `profile_views` desc"
si je change la logique et la ville où mettre l'article en ligne unique comme:
$col = $query->where('city_id', $city)->where('level','LIKE','%%')->orderBy($Order_By, $Sort_Type)->toSql();
Le résultat de cette requête est:
"select * from `doctors` where `city_id` is null and `level` LIKE ? order by `profile_views` desc"
comment puis-je faire la première logique à travailler?
Je suppose que '$ city' est probablement nul. L'avez-vous vérifié avec 'var_dump ($ city)'? –
Pour étendre la déclaration de @ aynber, vous voulez probablement '$ query = Doctor :: query();' - bien que je soupçonne que Bill est * aussi * correct. – ceejayoz
@BillKarwin ce n'est pas lié à la valeur de $ city parce que je lui ai donné une valeur de chaîne et qu'elle n'apparaît toujours pas dans la requête. –