Подтвердить что ты не робот

Красноречивый - где не равен

Я использую последнюю установку Laravel.

Моя структура таблицы такова: https://www.uploady.com/#!/download/OQSH4ualzUD/x2SIqdcaulqzSSsy

Я пробовал эти запросы:

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()

В идеале, он должен вернуть последние 3 записи. Но он возвращает пустой массив. Как мне это решить? Пожалуйста, помогите.

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');
    }

}
4b9b3361

Ответ 1

Используйте where с оператором != в сочетании с whereNull

Code::where('to_be_used_by_user_id', '!=' , 2)->orWhereNull('to_be_used_by_user_id')->get()

Ответ 2

Для where field not empty это сработало для меня:

->where('table_name.field_name', '<>', '')