Моя цель — создать форму в контейнере форм. Когда я вызываю форму непосредственно в моем контроллере, она работает, но когда я вызываю контейнер, у меня возникает эта проблема:
Неустранимая ошибка: вызов функции-члена 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();
}
}
Здесь мои папки и файлы:
Я тоже попробовал вот так:
(Извините за плохой английский, надеюсь, я не забыл что-то важное)
Задача ещё не решена.
Других решений пока нет …