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

问题描述 投票:1回答:2

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

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

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";
       }

    }

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

php cakephp model-view-controller cakephp-3.0 shopping-cart
2个回答
1
投票

您必须使用以下内容。

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

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

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

use Cake\ORM\TableRegistry;

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

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

       $cart_table->addToCart();
}

0
投票

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

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

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

这应该让你开始运行。

© www.soinside.com 2019 - 2024. All rights reserved.