Magento 2 - 503 (Сервис недоступен) при создании модели

Я следовал инструкциям из принятого ответа этого вопрос для создания модели и файла ресурсов модели.

Компания/Проект/Модель/Album.php

<?php

namespace Company\Project\Model;

class Album extends \Magento\Framework\Model\AbstractModel {

    public function __construct(
    \Magento\Framework\Model\Context $context,
    \Magento\Framework\Registry $registry,
    \Psr\Log\LoggerInterface $logger,
    \Magento\Framework\Model\Resource\AbstractResource $resource = null,
    \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
    array $data = []
    ) {
       $this->_logger = $logger;
       $this->_logger->addInfo("SO WE CAN ACTUALLY GET INTO THE MODEL FILE");
       parent::__construct($context, $registry, $resource, $resourceCollection, $data);
    }

  public function _construct() {
    $this->_init('Company\Project\Model\Resource\Album');
  }
}

Компания/Проект/Модель/Ресурс/Album.php

<?php

namespace Company\Project\Model\Resource;

class Album extends \Magento\Framework\Model\Resource\Db\AbstractDb {
    public function _construct() {
    $this->_init('px_product_albums', 'id');
    }
}

Company/Project/Helper/Data.php — здесь я получаю сообщение об ошибке

<?php

class Data extend \Magento\Framework\App\Helper\AbstractHelper {
    .....
    protected $pageFactory;

    public function __construct(
      ....
      \Magento\Cms\Model\PageFactory $pageFactory
    )
    ......

    function whereStuffIsHappening() {
    .....
      $albumId = WeHaveTheValue;
      $productId = WeHaveThisValueToo;
      $album = $this->pageFactory->create('Company\Project\Model\Album');
      $this->_logger->addInfo("Album code is alright");
      $album->setProductId($product->getId())->setPixleeAlbumId($albumId);
      $album->save();
      $this->_logger->addInfo("ALBUM ID SUCCESSFULLY SAVED");

Кажется, что следующая строка не выполняется. Я получаю 503 (Сервис недоступен).

$album = $this->pageFactory->create('Компания\Проект\Модель\Альбом');

Некоторые из вещей, которые я пробовал

Странно то, что я никогда не видел записи «ТАК МЫ МОЖЕМ ДЕЙСТВИТЕЛЬНО ПОЛУЧИТЬ В ФАЙЛ МОДЕЛИ» (это оператор печати в файле модели). Что наводит меня на мысль, что модель не инициируется. Но я могу ошибаться.

Помощь?


person satnam    schedule 26.01.2016    source источник
comment
Во-первых, вы не должны использовать PageFactory для создания экземпляра вашей модели. Это модель, поэтому ее нужно либо создать с помощью DI (конструктора), либо с помощью диспетчера объектов. Что касается ссылки, которую вы разместили, это плохая практика, если вы напрямую создаете экземпляр диспетчера объектов. Если вы также запрашиваете OM в качестве зависимости, вы можете безопасно использовать его для создания своих моделей.   -  person scrowler    schedule 26.01.2016
comment
Я действительно пытался создать его с помощью диспетчера объектов. Например, $this-›_objectManager-›create(...). Это дало ту же ошибку. Любое другое место, на которое я должен смотреть?   -  person satnam    schedule 26.01.2016
comment
Был ли сгенерирован класс PageFactory? Он должен находиться по пути var/generation/Magento/Cms/Model   -  person Aleksandr    schedule 26.01.2016