Я новичок в cakephp, и я пытаюсь создать область поиска, чтобы перечислить некоторые продукты, цены на которые превышают значение, или ниже значения, и разбить их на страницы.
Но когдаЯ пытаюсь сделать это, результат полностью отличается от того, что я ожидал.Пытаясь понять, почему это происходит, я обнаружил, что мой запрос обрабатывает значение как тип String вместо Float, и он портит результаты.
Независимо от того, что я пытаюсьтип значения не изменяется, как мне сделать, чтобы изменить тип значения в запросе cakePHP?
// the price value that comes from the input is formatted like this: '1.000,00'
$productsModel = $this->loadModel('Products');
$this->paginate = [
'contain' => [
'Archives', 'Categories', 'Favorites'
],
'conditions' => [
//here I've tried to do some conversions manually
'Products.price >=' => floatVal(str_replace(",", ".", str_replace(".", "", $data['lower_price']))),
'Products.price <=' => floatVal(str_replace(",", ".", str_replace(".", "", $data['greater_price']))
],
'limit' => 16
];
$products = $this->paginate($productsModel);
$this->set(compact('products'));
Я ожидал, что запрос был сгенерирован так:
SELECT * FROM products WHERE price >= 29.90;
Но у меня есть это вместо:
SELECT * FROM products WHERE price >= '29.90';