Я не уверен, какие ключевые слова использовать для поиска ответа, его простые, но ничего не найдено.Операторы 'if' в модели для форматирования фильтра SQL-запросов
Модель используется для запросов sql, насколько я знаю. Нет логики.
Итак, как насчет фильтров?
Например
function getItems($partnerUserId) {
$param = "";
$params = array();
if ($partnerUserId !== '') {
$param = "AND z.x = ?";
$params[] = $partnerUserId;
}
$sql = "SELECT ...
FROM z
WHERE z.a = 1
$param";
return DB::connection($connection)->select($sql, $params);
}
И в реальном мире, например там получить гораздо больше этих заявлений. Это как модель должна быть или я должен сделать эту логику в контроллере, а затем передать строки фильтра в качестве параметров для функции модели?
Построение SQL-запросов должно происходить в конкретном [преобразователе данных] (http://martinfowler.com/eaaCatalog/dataMapper.html), который отвечает за сохранение определенного объекта домена в пределах слоя модели. –
Хорошо, некоторые фреймворки, такие как PHP laravel, поставляются без datamaper, как я понял из этого: http://stackoverflow.com/questions/16923350/laravel-4-with-data-mapper , так что создатели фрейма предполагают, что это не обязательно , Так как же - без установки дополнительных плагинов? –
Вам не нужно использовать библиотеки для реализации шаблона карт данных. И рамки не имеют к этому никакого отношения. –