我创建了表单,我有以下错误:
Call to a member function getTitleName() on a non-object in C:\wamp\www\public_html\apps\frontend\modules\planbook\templates\_form.php on line 25
这是我的代码:
<form method="post" enctype="multipart/form-data" action="<?php echo url_for((!isset($planbook) ? '@planbook_create' : '@planbook_update').(isset($planbook) ? '?id='.$planbook->getId() : '')) ?>">
<table>
<tfoot>
<tr>
<td colspan="2">
<a href="<?php echo url_for('planbook/index') ?>">Back to list</a>
<?php if (!$form->getObject()->isNew()): ?><?php endif; ?>
<input type="hidden" id="planbook_id" name="planbook[id]" value="<?php echo isset($planbook) ? $planbook->getId() : ' '?>" />
<input type="submit" value="Save" />
</td>
</tr>
</tfoot>
<tbody>
<tr>
<th>
<lable for="planbook_titlename"> Title</label>
</th>
<td>
<?php if(isset($editFormFields) && isset($editFormFields['titlename'])) :?>
<input type="text" id="planbook_titlename" name="planbook[titlename]" value="<?php echo isset($planbook) ? $planbook->getTitleName() : ''?>">
<?php else: ?>
<?php echo $planbook->getTitleName() ?>
<?php endif; ?>
</td>
</tr>
<tr>
<th>
<label for="planbook_place">Place</label>
</th>
<td>
<?php if(isset($editFormFields) && isset($editFormFields['place'])) :?>
<input type="text" id="planbook_place" name="planbook[place]" value="<?php echo isset($planbook) ? $planbook->getPlace() : ''?>">
<?php else: ?>
<?php echo $planbook->getPlace() ?>
<?php endif; ?>
</td>
</tr>
</tbody>
</table>
</form>
答案 0 :(得分:0)
尝试is_object($ planbook)
Doctrine通常会返回一些内容,因此is_null或isset可能不是最好的主意
答案 1 :(得分:0)
要解决您的错误,我想您需要在表单前面加上这一行:
$planbook = $form->getObject();
然后将所有isset($planbook)
替换为! $planbook->isNew()
。
但是我认为你采取了错误的创建表单的方式。
例如,这个:
<?php if(isset($editFormFields) && isset($editFormFields['titlename'])) :?>
<input type="text" id="planbook_titlename" name="planbook[titlename]" value="<?php echo isset($planbook) ? $planbook->getTitleName() : ''?>">
<?php else: ?>
<?php echo $planbook->getTitleName() ?>
<?php endif; ?>
您无需手动执行操作,例如:
每件事都以表格完成:
<?php echo $editFormFields['titlename']->renderRow() ?>
请read the full doc related to the form。而且,不要忘记给我们所有错误的代码。在这里,您只给我们一个部分模板。
$form
来自哪里)?