Есть ли способ получить/манипулировать моделью агностически в AppController, чтобы избежать сушки в контроллерах приложения? Например:CakePHP: манипуляция с агностикой
//AppController.php
public function find_all()
{
return $this->AppModel->find('all');
//I know this does not work but to give you the idea
}
И у детей контролеров приложения:
//FoosController.php
public function some_function()
{
$data = parent::find_all();
//List of Foo entities
}
Или:
//BarsController.php
public function some_other_function()
{
$data = parent::find_all();
//List of Bar entities
}
Есть ли решение CakePHP может обеспечить? Или, может быть, размышления?
Благодарим за помощь!
Вы уверены, что хотите _avoid_ DRYness, я думаю, что вы захотите _achieve_ it? Что именно вы не хотите повторять? Действительно ли это просто вызовы 'Model :: find()', или есть ли на самом деле более сложная задача? Если это так, то просьба уточнить это, потому что упаковка простого вызова 'Model :: find()' не имеет особого смысла. – ndm
На самом деле это действительно больше, чем просто метод Model: find() ... В принципе, все операции CRUD, которые я выполняю на моделях, абсолютно одинаковы, поэтому я бы хотел их реорганизовать в непосредственно в AppController. Так что я действительно пытаюсь достичь - это манипулировать моделью абстрактным образом. Использование контроллера: loadModel ($ this-> modelClass) загружает нужную модель, но затем, как я могу использовать эту модель для вызова методов Model: save() или Model: find()? –
Мммм, я все еще не уверен, что понимаю вашу реальную проблему ... возможно, вы спрашиваете, как использовать значение '$ this-> modelClass' для доступа к объекту? – ndm