Laravel Eager Загрузка не работает как запрос к БД - PullRequest
0 голосов
/ 06 декабря 2018

Я вызываю транзакцию с двумя красноречивыми функциями (supplier и demander), я регистрирую запрос, но по какой-то причине он полностью обрабатывается неправильно.

 $transactionSegregated = Transaction::with([
            'demandCurrency',
            'supplier' => function($query){$query->where('is_test','=', 0);},
            'demander' => function($query){$query->where('is_test','=', 0);},
        ])
            ->where('date', '>=', $carbonDates['dateFrom'])
            ->where('date', '<=', $carbonDates['dateTo'])
            ->get();

Поставщик (иdemander) просто красноречивое объединение для Клиента:

public function supplier(){
    return $this->belongsTo('App\Customer', 'site_user1');
}

Вот соответствующая часть моего простого запроса, где все выглядит на 100%.в настоящее время тестирование, поэтому я устанавливаю идентификатор клиента 21 с is_test = 1, и он все еще переносит эту строку, хотя я прошу его ограничить его только для клиентов, которые is_test = 0:

 array (
    'query' => 'select * from `currencies` where `currencies`.`id` in (?)',
    'bindings' =>
    array (
      0 => 27,
    ),
    'time' => 2.1800000000000002,
  ),
  2 =>
  array (
    'query' => 'select * from `customers` where `customers`.`id` in (?) and `is_test` = ?',
    'bindings' =>
    array (
      0 => 21,
      1 => 0,
    ),
    'time' => 2.5299999999999998,
  ),
  3 =>
  array (
    'query' => 'select * from `customers` where `customers`.`id` in (?) and `is_test` = ?',
    'bindings' =>
    array (
      0 => 21,
      1 => 0,
    ),
    'time' => 2.5699999999999998,
  ),
  4 =>
  array (
    'query' => 'select * from `requests` where `approved_at` >= ? and `approved_at` <= ? and `request_status` = ?',
    'bindings' =>
    array (
      0 =>
      Illuminate\Support\Carbon::__set_state(array(
         'date' => '2018-12-06 00:00:00.774876',
         'timezone_type' => 3,
         'timezone' => 'America/Dominica',
      )),
      1 =>
      Illuminate\Support\Carbon::__set_state(array(
         'date' => '2018-12-06 10:32:36.774951',
         'timezone_type' => 3,
         'timezone' => 'America/Dominica',
      )),
      2 => 2,
    ),
    'time' => 2.7200000000000002,
  ),

IЯ ожидаю, что эта строка не вернется, когда demander или supplier имеет is_test = 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...