2015-03-13 4 views
0

Мне нужна относительно простая инструкция, в которой я сортирую свою модель на основе двух столбцов, часов и минут, на указанной модели.Извлечение модели на основе комбинированного значения двух столбцов?

следующие работы

$recipes->where('minutes','>', $minTime)->get(); 

Но что я действительно хочу сделать, это

$recipes->where('hours * 60 + minutes','<', $minTime)->get(); 

К сожалению, этот синтаксис не доступен, я возиться с парой других решений, но у меня есть не смог его решить.

Я надеялся на некоторые направления, так как я застрял!

ответ

2

По умолчанию Laravel использует привязки в операторах и избегает их. Для того, чтобы сделать расчеты и такие, используйте whereRaw:

$recipes->whereRaw('hours * 60 + minutes < '.$minTime)->get(); 

Однако теперь ваш запрос становится уязвимым для инъекции SQL, чтобы избежать этого создать привязку вручную:

$recipes->whereRaw('hours * 60 + minutes < ?', [$minTime])->get(); 

Вместо whereRaw вы можете также использовать DB::raw() внутри нормального where функция:

$recipes->where(DB::raw('hours * 60 + minutes'),'<', $minTime)->get(); 

Это говорит Ларавелу, что он не скрывает эту часть запроса.

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