В настоящее время я использую последнюю версию Laravel.
Я пробовал следующие запросы:
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()
В идеале он должен возвращать все записи, кроме user_id = 2
пустого массива. Как мне с этим справиться?
Code::all()
Это возвращает все 4 записи.
Модель кода:
<?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');
}
}
Для
where field not empty
меня это сработало:источник
Хотя это, кажется, работает
вы не должны использовать его для больших таблиц, потому что, как правило, "или" в вашем предложении where останавливает запрос для использования индекса. Вы переходите от «Поиск ключа» к «полному сканированию таблицы».
Вместо этого попробуйте Union
источник
Или вот так:
источник