CakePHP: агностическая модель манипуляции

Есть ли способ извлекать / манипулировать моделью независимо в AppController, чтобы избежать засухи в контроллерах приложения? Например:

//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? Или используя отражение, может быть?

Спасибо за помощь !

0

Решение

Я нашел способ достичь того, что искал:

//AppController.php
public function find_all()
{
return $this->{$this->modelClass}->find('all');
}

НОТА: Если вы выполняете повторяющиеся операции CRUD без какой-либо реальной бизнес-логики или авторизации (как я в настоящее время), вы также можете использовать эти строки кода для сохранения энтеитов, не зная о модели, которая обрабатывается в AppController,

//AppController.php
if (!$this->{$this->modelClass}->save($this->request->data))
{
$validationErrors = $this->{$this->modelClass}->validationErrors;
//error logic here
}
else
{
//success logic here
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]