Laravel по-русски
      
      
    Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем привет. Есть метод который принимает $productId, но $productId может быть null или значение, как сделать что бы когда $productId = null, то where вообще не выполнялось.
public function getOperations($productId)
    {
        return  $this->model
            ->join('articles', 'articles.id', '=', 'operation_articles.article_id')
            ->leftJoin('product_options', 'product_options.id', '=', 'books.product_option_id')
            ->leftJoin('products', 'products.id', '=', 'product_options.product_id')
            ->select(
                'booking_tour_points.id',
                'bookings.date',
            )
            ->where('products.id', $productId)
            ->get();
    }
public function getOperations($productId)
    {
        $return = $this->model
            ->join('articles', 'articles.id', '=', 'operation_articles.article_id')
            ->leftJoin('product_options', 'product_options.id', '=', 'books.product_option_id')
            ->leftJoin('products', 'products.id', '=', 'product_options.product_id')
            ->select(
                'booking_tour_points.id',
                'bookings.date',
            );
            if ( $productId != null )
                $return->where('products.id', $productId)
            return $return->get();
    }это есть в документации
Изменено hzone (19.01.2016 19:32:50)
Не в сети
Изменю немного метод:
public function getOperations($productId)
    {
        $first = $this->model
            ->join('articles', 'articles.id', '=', 'operation_articles.article_id')
            ->leftJoin('product_options', 'product_options.id', '=', 'books.product_option_id')
            ->leftJoin('products', 'products.id', '=', 'product_options.product_id')
            ->select(
                'booking_tour_points.id',
                'bookings.date',
            )
            ->where('products.id', $productId)
            ->where('bookings.date', $date)
           ->groupBy('products.id');
        return $this->model
            ->join('articles', 'articles.id', '=', 'operation_articles.article_id')
            ->leftJoin('product_options', 'product_options.id', '=', 'books.product_option_id')
            ->leftJoin('products', 'products.id', '=', 'product_options.product_id')
            ->select(
                'booking_tour_points.id',
                'bookings.date',
            )
            ->where('products.id', $productId)
            ->where('bookings.date', $date)
            ->groupBy('bookings.date')
            ->union($first);
    }
Страницы 1