2015-11-12 2 views
0

У меня есть следующая проблема. Мне нужно получить строки из базы данных, где цена ниже заданного числа. я могу сделать это так:Laravel eloquent как анализировать данные внутри запроса, где атрибут

DB::where('price', '<=', $given_number)->get(); 

, но проблема в том, что внутри ценовой ячейки у меня есть номер с дополнительными признаками, как $ за доллары или евро знак. Я знаю, как разбирать строку в PHP, чтобы извлекать только числа - filter_var ($ string, FILTER_SANITIZE_NUMBER_INT), но как это сделать в запросе из Laravel? Как я могу предварительно проанализировать этот атрибут «цена»?

ответ

0

Это вы имеете в виду?

$price = filter_var($given_number, FILTER_SANITIZE_NUMBER_INT); 
$products = Product::where('price', '<=', $price)->get(); 

Есть ли дополнительная информация, которую вы оставили?

+0

нет, мне нужно проанализировать строку «цена» в базе данных и сравнить ее с переменной $ price, которая анализируется. Но «цена» в базе данных, как 34 $ – Vikast

+2

, могу предложить вам изменить значения в вашей базе данных, чтобы они были числами вместо строк? это выглядит очень необычным способом хранения значений в БД. – morphatic

+0

Я думаю, вы могли бы сделать «DB :: where» («цена», «<=», «$». $ Given_number) -> get() ', но он будет выполнять сравнение строк, а не числовое сравнение. , – morphatic

Смежные вопросы