Actualmente estoy usando la última versión de Laravel.
Probé las siguientes consultas:
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()
Idealmente, debería devolver todos los registros excepto user_id = 2
, pero devuelve una matriz en blanco. ¿Cómo abordo esto?
Code::all()
Esto devuelve los 4 registros.
Modelo de código:
<?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');
}
}
Para
where field not empty
esto funcionó para mí:fuente
Mientras esto parece funcionar
no debe usarlo para tablas grandes, porque como regla general "o" en su cláusula where es detener la consulta para usar el índice. Pasará de "Búsqueda de claves" a "Exploración de tabla completa"
En su lugar, prueba Union
fuente
O así:
fuente