fomvasss
@fomvasss
PHP developer

Запрос на Elequent со значением по умолчанию. Как сделать?

Есть сайт на нескольких языках. Нужно сделать чтобы, когда указан язык ($languageId) выводились категории только этого языка. Если не указан - все категории.
Написал такой скоп, но если не указывать язык - то не чего не выводит

public function scopeGetCatLeng ($query, $languageId = '*')
	{
			return $query->where('parent_id', null)->where('language_id', $languageId);
	}


$categories = Category::getCatLeng(1)->get();  // выводит категории с языком 1;
$categories = Category::getCatLeng()->get();  // не выводит категорий вообще;


Может я не правильно использую символ * ?
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
miraage
@miraage
Старый прогер
Эм, это же очевидно.

1) сделать NULL значением по-умолчанию
2) добавлять where('language_id') только если этот параметр не равен NULL

// EDIT

public function scopeGetCatLeng ($query, $languageId = null)
{
   $query->where('parent_id', null);

    if ($languageId !== null) {
        $query->where('language_id', $languageId);
    }

    return $query;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы