模型中的函数在CakePhp 3中无法识别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模型中的函数在CakePhp 3中无法识别相关的知识,希望对你有一定的参考价值。

我只是确定我是否犯了任何错误。我试图从不同的控制器(产品)访问模型(购物车)的功能。

我从论坛上了解到这一点,我认为这是正确的方法。但是我收到了这个错误

Unknown method addToCart

你能告诉我哪里弄错了吗?

ProductController的:

    public function initialize(){
         parent::initialize();
        $table =  $this->loadModel('Cart');// this works fine
        }

      public function addit() {
            $table->addToCart();

      }

模型:

 class CartTable extends Table{
      public function addToCart(){
        echo "hello from model";
       }

    }

有什么我需要做的吗?我没有发现这有助于我。所以请明智的人帮助我。谢谢你:)

答案

您必须使用以下内容。

public function initialize(){
     parent::initialize();
     $this->loadModel('Cart');// this works fine
    }

  public function addit() {
       $this->Cart->addToCart();
  }

在cakephp 3中你也可以通过TableRegistery来模型化模型就这样使用它。

use CakeORMTableRegistry;

在使用之前把这一行放在控制器的使用部分

public function addit() {
    $cart_table = TableRegistry::get('Cart');

       $cart_table->addToCart();
}
另一答案

您需要在方法中加载模型,而不需要将其分配给var。

    public function initialize(){
        parent::initialize();
    }

   public function addit() {
        $this->loadModel('Cart');
        $this->Cart->addToCart();
   }

这应该让你开始运行。

以上是关于模型中的函数在CakePhp 3中无法识别的主要内容,如果未能解决你的问题,请参考以下文章

使用片段时 Intellij 无法正确识别 Thymeleaf 模型变量

无法更改 CakePHP 2.3 中的默认错误消息

我的片段中的按钮无法识别

Cakephp SaveAssociated 和 Save - 使用相同的模型验证代码

如何使用 cakephp 3 在不同数据库中的模型之间进行关联?

CakePHP:将数据保存到 3 个不同的模型