Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 30.05.2018 15:15:54

Если в scope передать параметр со значением null

Всем привет,
Laravel 5.5 приложении нужно вызвать контрол с фильтром в 2мя необязательными параметрами :

    public function get_article_size_settings_dt_listing($article_id, $brooklyn_ean= ‘’, $supplier_ean= ‘’) {
        $sizeContent= Datatables::of(ArticleSizeSetting::getByArticleId($article_id)->getByBrooklynEanSupplierEan($brooklyn_ean, $supplier_ean)->get())->make(true);
        return $sizeContent;
    }

И в модели реализовано:

    public function scopeGetByArticleIdSizeId($query, $article_id, $size_id)
    {
        return $query->where('article_id', $article_id)->where('size_id', $size_id);
    }

    public function scopeGetByBrooklynEanSupplierEan($query, $brooklyn_ean, $supplier_ean)
    {
        return $query->where('brooklyn_ean', $brooklyn_ean)->where('supplier_ean', $supplier_ean);
    }

Но в результате если параметры $brooklyn_ean и $supplier_ean не данны я получаю запросы с null-ами

   SELECT * 
    FROM `article_size_settings` 
    WHERE `article_id` = '2'     AND `brooklyn_ean` is null     AND `supplier_ean` is null 
Time 1.01 : 
   SELECT * 
    FROM `users` 
    WHERE `users`.`id` = '1' limit 1 

   
    А можно ли организовать scope так чтобы чтобы если параметры null  по ним не было бы запросов?
   
Спасибо!

Не в сети

#2 14.06.2018 23:33:07

Re: Если в scope передать параметр со значением null

if(empty($var1) || empty($var2)){
    return $query;
}
return $query->...

Не в сети

Подвал раздела