【发布时间】:2010-07-11 17:46:20
【问题描述】:
我有一个应用程序,它在每个视图中都加载了表单。我已经相当熟悉 CakePHP 的数组语法,并且经常使用 $this->data 参数。
我爱上了瘦控制器和胖模型,因此我在模型中添加了尽可能多的代码。除非我在做一些复杂的事情,否则我的大多数控制器方法都是这样的:
function some_action() {
$this->set('data', $this->Model->some_action($this->data));
}
然后,在我的模型中,我有一个采用一个参数的方法:
function some_action($this_data = NULL) {
// do some stuff, manipulate the data etc.
$this->create();
if ($this->save($this_data)) {
// return success message here
}
}
我过于简单了,但你明白了。
我的问题:我总是将 $this->data 发送到我的模型并使用变量 $this_data 捕获它。但是,我想知道这是否是一步太多了?模型是否继承了 $this->data?如果是这样,我可以将上述控制器方法更改为:
function some_action() {
$this->set('data', $this->Model->some_action());
}
然后在我的模型中操作 $this->data 而不是我一直使用的 $this_data 变量?最佳做法是什么?
【问题讨论】:
-
好吧,如果您使用的两个函数都在同一个类中,那么是的,它们都可以通过
$this->data访问该类中的数据变量...虽然有点令人困惑, 当您对所有三个示例函数使用相同的函数名称时。 -
不,他们不在来的班级。抱歉,我的问题假设一个人了解 CakePHP 框架。澄清一下,第一个函数在 Controller 类中,第二个函数在 MVC 架构中的 Model 类中。如果不完全相同,我几乎总是以类似的方式命名这些方法,以便我的代码是自我记录的。我想我正在联系 CakePHP-heads 以获得 $this->data 问题的答案。
标签: cakephp parameters methods