Éloquent - où pas égal à
Je suis actuellement en utilisant les dernières Laravel version.
J'ai essayé les requêtes suivantes:
Code::where('to_be_used_by_user_id', '<>' , 2)->get()
Code::whereNotIn('to_be_used_by_user_id', [2])->get()
Code::where('to_be_used_by_user_id', 'NOT IN', 2)->get()
Idéalement, il doit retourner tous les documents, sauf user_id = 2
, mais il retourne vide tableau. Comment puis-je remédier à cette situation?
Code::all()
Ceci renvoie à tous les 4 dossiers.
Code modèle:
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class Code extends Model
{
protected $fillable = ['value', 'registration_id', 'generated_for_user_id', 'to_be_used_by_user_id', 'code_type_id', 'is_used'];
public function code_type()
{
return $this->belongsTo('App\CodeType');
}
}
- Veuillez expliquer le downvote. Je vais rectifier la question.
- votre structure de la table est de 404
Vous devez vous connecter pour publier un commentaire.
Utilisation
where
avec un!=
opérateur en combinaison avecwhereNull
Pour
where field not empty
cela a fonctionné pour moi:Bien que cela semble fonctionner
vous ne devriez pas l'utiliser pour de grandes tables, car en règle générale "ou" dans votre clause where est l'arrêt de la requête à utiliser les index. Vous allez de "Clé de recherche" à "full table scan"
Au lieu de cela, essayez de Union
Ou comme ceci: