Контейнер формы не может установить дочернюю форму / создать блок формы - PullRequest
0 голосов
/ 08 января 2019

Моя цель - создать форму в контейнере форм. Когда я вызываю форму непосредственно в моем контроллере, она работает, но когда я вызываю контейнер, у меня возникает эта проблема:

Неустранимая ошибка: вызов функции-члена setData () для логического значения в app / code / core / Mage / Adminhtml / Block / Widget / Form / Container.php в строке 144

Строка кода:

public function getFormHtml() {
    $this->getChild('form')->setData('action', $this->getSaveUrl());
    return $this->getChildHtml('form');
}

И это относится к другой строке:

protected function _prepareLayout() {
    if ($this->_blockGroup && $this->_controller && $this->_mode) {
        $this->setChild('form', $this->getLayout()->createBlock($this->_blockGroup
            . '/'
            . $this->_controller
            . '_'
            . $this->_mode
            . '_form'
            )
        );
    }
    return parent::_prepareLayout();
}

Я пытался настроить значения _blockGroup, _controller и _mode, но ничего не работает ...

Мой класс контейнера формы:

class Cheek_Portraits_Block_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
{
    public function __construct()
        {
            $helper =  Mage::helper('portraits');
            $this->_blockGroup = 'portraits';
            $this->_controller = 'page';
            $this->_mode = 'edit';

            if($this->getRequest()->getParam('id'))
                {
                    $this->_headerText = $helper->__('Edit')." portrait";
                }
            else
                {
                    $this->_headerText = $helper->__('New')." portrait";
                }
            parent::__construct();
        }
}

Вот мои папки и файлы:

Я тоже пробовал вот так:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...