Laravel с учетом - PullRequest
       3

Laravel с учетом

0 голосов
/ 01 ноября 2018

Мне нужно посчитать пассажира с учетом

$orders = $this->orderRepository
              ->search($filters, true)
              ->sort($sort)
              ->select([
                'id',
                'code',
                'pro_periods_id',
                'quantity_adult_single',
                'quantity_adult_double',
                'quantity_adult_triple',
                'quantity_child_bed',
                'quantity_child_no_bed',
                'quantity_infant',
                'created_at',
                'created_by'
              ])
              ->with(['orderPassengers' => function($sub_query){
                  $sub_query->select([
                    'id',
                    'pro_orders_id',
                    'pro_rooms_id',
                    'title_name',
                    'first_name_en',
                    'last_name_en',
                    'birth_date'
                  ])
                  ->with(['room' => function($sub_query){
                    $sub_query->select([
                      'id',
                      'pro_periods_id',
                      'room_number',
                      'room_type',
                      'extra_bed'
                    ]);
                  }]);
              }])
              ->withCount('orderPassengers');

Это мой результат введите описание изображения здесь

Я ничего не получаю с учетом.

Как я могу получить orderPassenger_count.

Ответы [ 3 ]

0 голосов
/ 01 ноября 2018

Вы должны попробовать это:

$orders = $this->orderRepository
          ->search($filters, true)
          ->sort($sort)
          ->select([
            'id',
            'code',
            'pro_periods_id',
            'quantity_adult_single',
            'quantity_adult_double',
            'quantity_adult_triple',
            'quantity_child_bed',
            'quantity_child_no_bed',
            'quantity_infant',
            'created_at',
            'created_by'
          ])
          ->withCount(['orderPassengers' => function($sub_query){
              $sub_query->select([
                'id',
                'pro_orders_id',
                'pro_rooms_id',
                'title_name',
                'first_name_en',
                'last_name_en',
                'birth_date'
              ])
              ->with(['room' => function($sub_query){
                $sub_query->select([
                  'id',
                  'pro_periods_id',
                  'room_number',
                  'room_type',
                  'extra_bed'
                ]);
              }]);
          }])->get();
0 голосов
/ 01 ноября 2018

Вы можете сделать withCount() только для определенного отношения модели.

class Order extends Model
{
    function orderPassengers()
    {
        return $this->hasMany('App\orderPassengers');
    }
}
0 голосов
/ 01 ноября 2018

Попробуйте это:

$orders = $this->orderRepository
          ->search($filters, true)
          ->sort($sort)
          ->select([
            'id',
            'code',
            'pro_periods_id',
            'quantity_adult_single',
            'quantity_adult_double',
            'quantity_adult_triple',
            'quantity_child_bed',
            'quantity_child_no_bed',
            'quantity_infant',
            'created_at',
            'created_by'
          ])
          ->withCount(['orderPassengers' => function($sub_query){
              $sub_query->select([
                'id',
                'pro_orders_id',
                'pro_rooms_id',
                'title_name',
                'first_name_en',
                'last_name_en',
                'birth_date'
              ])
              ->with(['room' => function($sub_query){
                $sub_query->select([
                  'id',
                  'pro_periods_id',
                  'room_number',
                  'room_type',
                  'extra_bed'
                ]);
              }]);
          }]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...