J'utilise actuellement la dernière version de Laravel.
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 devrait renvoyer tous les enregistrements sauf user_id = 2
, mais il renvoie un tableau vide. Comment résoudre ce problème?
Code::all()
Cela renvoie les 4 enregistrements.
Modèle de code:
<?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');
}
}
Pour
where field not empty
cela a fonctionné pour moi:la source
Bien que cela semble fonctionner
vous ne devez pas l'utiliser pour de grandes tables, car en règle générale, "ou" dans votre clause where arrête la requête pour utiliser l'index. Vous passez de la "Recherche de clé" à la "Analyse complète de la table"
Essayez plutôt Union
la source
Ou comme ça:
la source