Comment puis-je créer une requête basée sur une condition à Laravel?
Je peux le faire dans le Code de l'Allumeur
$this->db->select();
$this->from->('node');
if ($published == true)
{
$this->db->where('published', 'true');
}
if (isset($year))
{
$this->db->where('year >', $year);
}
$this->db->get();
Je ne suis pas capable de le faire dans Laravel. Les gars, pouvez-vous s'il vous plaît aider.
source d'informationauteur Amitav Roy | 2013-01-06
Vous devez vous connecter pour publier un commentaire.
Dans Fluent que vous pouvez faire:
Voici comment vous pouvez accomplir votre requête:
Pour plus d'informations, je vous recommande la lecture à travers l'aise et Éloquente dans le Laravel docs.
http://laravel.com/docs/database/fluent
Si vous avez besoin d'utiliser Éloquent, vous pouvez l'utiliser comme, je ne suis pas sûr que whereNotNull est la meilleure, mais je ne pouvais pas trouver une autre méthode pour revenir à ce que nous voulons vraiment être une requête vide exemple:
De cette façon, tous les liens fonctionnent toujours, par exemple, à votre avis, vous pouvez toujours utiliser
Il ya une bonne quantité d'info ici http://daylerees.com/codebright/eloquent-queries sur ce genre de choses.
De Laravel 5.2.27vous pouvez éviter la rupture de la chaîne par l'écriture de vos conditions comme:
À utiliser Éloquent,il suffit de l'échanger
$query = DB::table('node')
avecNode::
mais se rendre compte si les deux conditions n'est pas vérifiée, vous aurez tout dans le tableau, sauf si vous signez pour une autre condition avant d'interroger la base de données/modèle ou à partir de l'intérieur de la requête elle-même.Note le que
$published
et$year
doit être dans la portée locale à être utilisé par la fermeture.Vous pouvez le rendre plus concis et lisible par la création d'une macro. Voir: Conditionnellement l'ajout d'instructions pour Laravel du générateur de requêtes
Vous pouvez utiliser
Model::when()
dans l'État ou vous pouvez créerBuilder::micro()
Par Exemple
Si Vous avez besoin de créer des micro pour un état. suivez les instructions.
Écrire thique de code dans votre serverice fournisseur de
Utiliser Comme Exemple Ci-Dessous
Ref: themsaid
pour éloquente de la requête, j'ai utilisé suivantes qui s'exécute uniquement si la condition a de la valeur