У меня есть таблица ниже consols
:
Schema::create('consols', function (Blueprint $table) {
$table->bigIncrements('id');
$table->double('current_weight', 8, 3)->default(0);
$table->double('current_weight', 8, 3)->default(0);
$table->double('final_weight', 8, 3)->default(0);
$table->double('final_cbm', 8, 3)->default(0);
$table->timestamp('finals_sent', 0)->nullable();
});
, в которой есть запись, подобная приведенной ниже:
id | current_weight | current_cbm | final_weight | final_cbm | finals_sent |
-----------------------------------------------------------------------------------|
1 | 45.000 | 1.000 | 200.000 | 10.000 | 2019-09-26 10:03:59 |
Я написал область действия на моей модели Consol
для фильтрациизаписи, где: finals_sent
не является нулевым, current_weight > final_weight
ИЛИ current_cbm > final_cbm
:
public function scopeOfCurrentGreaterThanFinals($query)
{
return $query->whereNotNull('finals_sent')->where(function ($query) {
$query->where('current_weight', '>', 'final_weight')
->orWhere('current_cbm', '>', 'final_cbm');
});
}
Когда я использую его и выгружаю - я ожидаю увидеть нет результаты:
$consols = Consol::ofCurrentGreaterThanFinals()
->orderBy('awb', 'DESC')
->get()
->toArray();
Тем не менее, приведенная выше запись все еще отображается:
array:1 [▼
0 => array:24 [▼
"id" => 1
"current_weight" => 45.0
"current_cbm" => 1.0
"final_weight" => 200.0
"final_cbm" => 10.0
"finals_sent" => "2019-09-26 10:03:59"
]
]
Я не уверен, что я делаю неправильно?Я думаю, я ясно заявляю, что я хочу видеть только результаты, где:
- current_weight> final_weight или
- current_cbm> current_weight и
- finals_sent не равен нулю
И вышеприведенная запись не подходит под это, потому что current_weight и current_cbm явно не выше, чем final_weight и final_cbm.
Чтоя делаю не так?