【问题标题】:same name component and model in cakePhp?cakePhp 中的同名组件和模型?
【发布时间】:2015-08-25 06:47:42
【问题描述】:

我有相同名称的组件和模型,例如产品。那么如何使用组件函数和模型函数呢?

例如:$this->componentName->function() / $this->modelName->function()

【问题讨论】:

  • 你能补充一些细节吗?
  • 您使用的是什么版本的 CakePHP?

标签: php cakephp model components


【解决方案1】:

假设这是您自己的代码,我会更改您的组件使用的名称。我倾向于在 CakePHP 2 中处理这个问题的方式是对组件使用复数命名约定。因此,在您的示例中,您将拥有模型 Product 和组件 ProductsComponent。然后在您的控制器中,您可以轻松区分两者:-

$this->Product->function(); // Model method
$this->Products->function(); // Component method

在 Cake 的命名约定中,控制器是复数形式,因此将其扩展到组件是有意义的。

【讨论】:

    【解决方案2】:

    从集合对象中调用组件。

    $this->Color->find(); // Model 
    $this->Component->Color->method(); // Component
    

    当我有一个模型和组件都命名时遇到了这个问题 “帐户”。模型在之后被加载,所以我认为它会覆盖。

    但是,我不确定组件是否会起作用,因为我从未尝试过 它。它确实适用于行为,因此值得一试。

    【讨论】:

    • 我不相信这会奏效。我刚刚尝试在某些代码上执行此操作,但失败了。
    猜你喜欢
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    相关资源
    最近更新 更多