CakePHP:不可知模型操作
CakePHP: agnostic model manipulation
有没有办法 fetch/manipulate AppController 中的模型不可知论以避免应用程序控制器中的 DRYness?例如:
//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 可以提供解决方案吗?或者使用反射,也许?
感谢您的帮助!
我想出了一个方法来实现我正在寻找的东西:
//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
}
有没有办法 fetch/manipulate AppController 中的模型不可知论以避免应用程序控制器中的 DRYness?例如:
//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 可以提供解决方案吗?或者使用反射,也许?
感谢您的帮助!
我想出了一个方法来实现我正在寻找的东西:
//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
}