【问题标题】:Cakephp calling a function between Model and ViewCakephp 在模型和视图之间调用函数
【发布时间】:2013-04-09 04:44:25
【问题描述】:

假设我有一个函数:

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

我将在模型和视图上都使用这个函数,我应该在 AppHelper 和 Car Model 上创建两个相同的函数吗?实现这一目标的正确方法是什么?

【问题讨论】:

  • 您希望保持干燥(不要重复自己)。因此,您的方法将行不通。要么将其设为普通模型方法,然后使用控制器将其传递下去。或者使用静态模型方法,您可以访问类似于此方法:dereuromark.de/2010/06/24/… - 似乎您在这里得到了一些类似数组的枚举 - 您也可能希望在表单等中使用它。

标签: php cakephp separation-of-concerns


【解决方案1】:

让两个函数做同样的事情通常是个坏主意,因为它违反了don't repeat yourself 原则。

相反,我会将该函数添加到您的 Car 模型中,然后将数据从您的控制器传递到您的视图,例如:

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

然后可以通过$carNames 变量在视图中使用汽车名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 2011-04-07
    • 1970-01-01
    • 2014-03-06
    • 2013-04-26
    • 1970-01-01
    • 2012-06-28
    相关资源
    最近更新 更多