MySQL Eloquent ORM – предложение где: значение может быть нулевымPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 MySQL Eloquent ORM – предложение где: значение может быть нулевым

Сообщение Anonymous »

Я немного не уверен, как действовать при выполнении запросов Eloquent ORM (Laravel 12), когда значение МОЖЕТ быть NULL.
Обычно вы проверяете значение NULL с помощью:

Код: Выделить всё

->whereNull("column")
Но если вы не знаете, является ли значение вообще NULL, это, конечно, ерунда. Итак, вы должны использовать:

Код: Выделить всё

->where("column",value)
Laravel (думаю, начиная с версии 8?) автоматически переводит это в MySQL как «столбец IS NULL». Стоит ли на это полагаться? Чтобы проверить это, я хотел бы воспользоваться Google Gemini, который предлагает следующую опцию:

Код: Выделить всё

// app/Models/YourModel.php
public function scopeWhereXIs($query, $search_value)
{
//if $search_value is NULL, use whereNull
if ($search_value === null) {
return $query->whereNull('x');
}

//otherwise use where clause
return $query->where('x', $search_value);
}
Итак, использование областей видимости. Это означает, что в запросе вы затем используете

Код: Выделить всё

->whereXIs($search_value_from_request)
Однако эта область необходима только в том случае, если вы не хотите доверять Laravel.
Что вы думаете? Какова была бы наилучшая практика?
Привет

Подробнее здесь: https://stackoverflow.com/questions/798 ... ld-be-null
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»