Функция из модели не распознается в CakePhp 3 - PullRequest
0 голосов
/ 01 октября 2018

Я просто проверяю, не ошибаюсь ли я.Я пытаюсь получить доступ к функции модели (корзины) из другого контроллера (продукта).

Я получил представление об этом на форуме, я думаю, что это правильный путь.Но я получаю эту ошибку

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

    }

Нужно ли что-нибудь еще сделать?Я не нашел, что помогает мне в этом. Так что, пожалуйста, мудрые люди помогают мне. Спасибо:)

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Вам нужно загрузить свою модель в метод, и вам не нужно присваивать ее переменной.

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

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

Это должно заставить вас работать.

0 голосов
/ 01 октября 2018

Вы должны использовать это следующим образом.

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();
}
...