2015-08-13 2 views

ответ

1

Просто введите свою модель в конструктор контроллера, и Objectmanager выполнит всю работу за вас. Это должно выглядеть следующим образом:

<?php 
namespace Demo\HelloWorld\Controller; 

class Index extends \Magento\Framework\App\Action\Action 
{ 
    protected $customerModel; 

    public function __construct(
     \Magento\Framework\App\Action\Context $context, 
     \Demo\HelloWorld\Model\Customer $customerModel 
    ) { 
     $this->customerModel = $customerModel; 
     parent::__construct($context); 
    } 

    public function execute() 
    { 
     $this->customerModel->demo(); 
    } 
} 
1

если ваша модель \Demo\HelloWorld\Model\Customer имеет таблицу за ней следует использовать завод, чтобы создать его экземпляр.
завод не должен быть создан, он будет генерироваться автоматически, но вы должны вводить его в конструкторе контроллера:

<?php 
namespace Demo\HelloWorld\Controller; 

class Index extends \Magento\Framework\App\Action\Action 
{ 
    protected $customerFactory; 

    public function __construct(
     \Magento\Framework\App\Action\Context $context, 
     \Demo\HelloWorld\Model\CustomerFactory $customerFactory 
    ) { 
     $this->customerFactory = $customerFactory; 
     parent::__construct($context); 
    } 

    public function execute() 
    { 
     $customer = $this->customerFactory->create(); 
     //here you can call load or any other method 
     //$customer->load(2); 
     //then call your method 
     $customer->demo(); 
    } 
}