我试图按照Zend官方网站上的专辑列表教程,但我遇到了一个错误,我无法找到解决方案。我正在从网站上复制代码,但它显示了我在标题中写的错误。
该类中的代码位于文件Album.php
:
public function exchangeArray($data)
{
$this->id = (isset($data['id'])) ? $data['id'] : null;
$this->artist = (isset($data['artist'])) ? $data['artist'] : null;
$this->title = (isset($data['title'])) ? $data['title'] : null;
}
当我尝试编辑我拥有的相册时,会发生这种情况,访问文件edit.phtml
:
<?php
$title = 'Edit album';
$this->headTitle($title);
?>
<h1><?php echo $this->escapeHtml($title); ?></h1>
<?php
$form = $this->form;
$form->setAttribute('action', $this->url(
'album',
array(
'action' => 'edit',
'id' => $this->id,
)
));
$form->prepare();
echo $this->form()->openTag($form);
echo $this->formHidden($form->get('id'));
echo $this->formRow($form->get('title'));
echo $this->formRow($form->get('artist'));
echo $this->formSubmit($form->get('submit'));
echo $this->form()->closeTag();
?>
我不知道错误可能在哪里。我在Zend完全崭新。如果您能查看我在github中迄今所做的工作,我将非常感激。
完整的错误消息是:
Fatal error: Cannot use object of type Album\Model\Album as array in /var/www/html/zf/module/Album/src/Album/Model/Album.php on line 17
谢谢。
答案 0 :(得分:1)
问题解决了。碰巧我已经复制了addAction()
方法,我必须删除两行才能使editAction()
生效。
答案 1 :(得分:0)
您可能需要将对象绑定到表单:
$form->bind($album);