Cakephp在模型和视图之间调用函数

Cakephp在模型和视图之间调用函数,php,cakephp,separation-of-concerns,Php,Cakephp,Separation Of Concerns,假设我有一个函数: function getCarName() { return array(1 => 'BMW', 2 => 'MERCEDEZ BENZ', 3 => 'RENAULT'); } 我将在模型和视图上使用此函数,我是否应该在AppHelper和汽车模型上创建两个相同的函数?实现这一点的正确方法是什么?让两个函数做同一件事通常是个坏主意,因为这违反了原则 相反,我会将该功能添加到您的汽车模型中,然后通过以下方式将数据从控制器传递到视图: $this-&g

假设我有一个函数:

function getCarName() {
   return array(1 => 'BMW', 2 => 'MERCEDEZ BENZ', 3 => 'RENAULT');
}

我将在模型和视图上使用此函数,我是否应该在AppHelper和汽车模型上创建两个相同的函数?实现这一点的正确方法是什么?

让两个函数做同一件事通常是个坏主意,因为这违反了原则

相反,我会将该功能添加到您的
汽车
模型中,然后通过以下方式将数据从控制器传递到视图:

$this->set('carNames', $this->Car->getCarNames());

然后,可以通过
$carNames
变量在视图中查看汽车名称。

让两个函数执行相同的操作通常是个坏主意,因为这违反了原则

相反,我会将该功能添加到您的
汽车
模型中,然后通过以下方式将数据从控制器传递到视图:

$this->set('carNames', $this->Car->getCarNames());

然后,可通过
$carNames
变量在视图中查看车辆名称。

您希望保持干燥(不要重复)。因此,您的方法将不起作用。或者将其设置为常规模型方法,并使用控制器将其向下传递。或者使用与此方法类似的静态模型方法:-这里似乎有一些类似枚举的数组-您可能还希望在表单中使用这些数组。您希望保持其干燥(不要重复)。因此,您的方法将不起作用。或者将其设置为常规模型方法,并使用控制器将其向下传递。或者使用与此方法类似的静态模型方法:-这里似乎有一些类似枚举的数组-您可能还希望在表单中使用这些数组。