CakePhp: Вы можете запросить базу данных из помощника помощника?
-
26-09-2019 - |
Вопрос
Привет, просто нужно знать, сможете ли вы запросить базу данных изнутри помощника, должен ли вы и как вы это делаете.
Спасибо
Решение
Вы могли, передавая ссылку на модель в представлении как переменную через $ this-> Set (), а затем запрашивая ее ... Но вы не должны. Это грязно ;-)
CakePhP использует модель MVC, и помощники являются частью представления (V MVC) - их задание чисто отображает (уже доступную) информацию, передаваемую ему от контроллера.
Если ваше представление нуждается в дополнительной информации, то ваш контроллер должен был уже запрашивать модели, чтобы получить его.
Я бы предложил вам прочитать в модели MVC, если вы не знакомы с ним, то некоторые рефакторинг могут быть в порядке!
Другие советы
Да. Вы можете запросить базу данных из вашего файла HELPER. Пожалуйста, проверьте это: -
class YourHelperNameHelper extends AppHelper {
function queryDbFromHelper()
{
// Load your model here
App::import('Model','ModelName');
$this->ModelName = new ModelName();
//now you can use find method or another method to query DB.
return $this->ModelName->find('all');
}
}
// Include this helper in controller
var $helpers = array('YourHelperName');
// call this function in helper file.
$this->YourHelperName->queryDbFromHelper();