Я вызываю транзакцию с двумя красноречивыми функциями (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