cakePHP中的控制器特定功能

时间:2011-06-17 20:35:56

标签: php model-view-controller cakephp

我在我的一个控制器中有一段代码,用于为每个操作调用数据,然后调用每个视图。而不是在每个动作中重复这段代码,在cakePHP中创建控制器范围功能的最佳方法是什么?或者什么是最佳做法?

控制器示例:

function get_data($location) {
   $orders = $this->Post->find('all',array('conditions' => array('Post.field' => $location));
   return $orders;
}

//actual view
function index() {
   get_data(waiting);
   //etc. etc.
}

//actual view
function view_1() {
   get_data(view_1);
   //etc. etc.
}

2 个答案:

答案 0 :(得分:2)

答案似乎是本文所述的胖模型,瘦控制器方法。 http://www.sanisoft.com/blog/2010/05/31/cakephp-fat-models-and-skinny-controllers/

您可以在模型中声明public function custom_function ($data)并通过$this->Model->custom_function($data);

在控制器中访问它们

答案 1 :(得分:0)

您可以使用以下某些操作:

beforFilter:在控制器操作之前调用

afterFilter:在运行并呈现控制器操作后调用。

beforeRender:在运行控制器操作之后但在呈现视图之前调用。