Где реализовать функции запросов в CakePHP? - PullRequest
0 голосов
/ 20 января 2012

Каркас CakePHP является многоуровневой структурой.Мой вопрос:

Где (теоретически) лучшее место для реализации функций запроса данных?В моделях или контроллерах?

Под "функциями запроса данных" я подразумеваю функции типа getItemsWithSomeInfo($idItem) и т. Д., Т.е. функции, которые не являются действиями.

В настоящее время я реализую эти функции в контроллере, но я думаю, что есть другие структуры, в которых эти функции (или методы) реализованы на уровне модели.

Я искал в Stackoverflow и обнаружил похожие проблемы ( Где / как хранить пользовательские функции (илиметоды) в CakePHP ), но (на мой взгляд) не очень хорошие ответы.

Ответы [ 2 ]

4 голосов
/ 20 января 2012

Такие функции лучше размещать в вашей модели, чем в контроллерах.Все данные, связанные коды должны быть в модели.Это всегда лучшая идея в долгосрочной перспективе, когда речь идет о рефакторинге или тестировании.Вы точно знаете, где найти код.И его можно повторно использовать без копирования и вставки в других действиях / контроллерах.

2 голосов
/ 20 января 2012

Поместите свою функцию в соответствующую модель, а затем используйте ее в контроллере:

Пример:

В Model.php

public function getItemsWithSomeInfo($idItem) {
  // your code
}

В ModelsController.php

$this->Model->getItemsWithSomeInfo($id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...