我在我的一个控制器中有一段代码,用于为每个操作调用数据,然后调用每个视图。而不是在每个动作中重复这段代码,在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.
}
答案 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:在运行控制器操作之后但在呈现视图之前调用。