我正在做一个基于http://www.jasongrimes.org/2012/01/using-doctrine-2-in-zend-framework-2/的新模块,我遇到了一个问题。如果值= 1,如何选中复选框?
查看/ index.phtml
<?php
$title = 'Newsletter';
$this->headTitle($title);
?>
<h1>Newsletter</h1>
<p>Select users who are to receive the newsletter.</p>
<table class="table table-striped">
<tr>
<td width="80%"><strong>User_id</strong></td>
<td width="10%" align="center"><strong>Yes/No</strong></td>
</tr>
<?php foreach ($newsletters as $newsletter) : ?>
<tr>
<td><?php echo $this->escapeHtml($newsletter->user_id); ?></td>
<td align="center"><?php echo $this->escapeHtml($newsletter->wantNewsletter); ?> <input type="checkbox" name="wantNewsletter" value="<?php echo $this->escapeHtml($newsletter->wantNewsletter); ?>"></td>
</tr>
<?php endforeach; ?>
<tr>
<td colspan="2" align="right"><button>Zapisz</button></td>
</tr>
</table>
答案 0 :(得分:0)
您不必担心选中此复选框。它将自动为您完成,但为了使其工作,您必须先调整它。
首先,您需要在表单中定义复选框:
final class SomeForm extends Form
{
public function __construct($name = null)
{
.....
// Add the checkbox here
$this->add(array(
'name' => 'wantNewsletter',
'type' => 'checkbox',
));
然后在模板中,您可以简单地渲染它:
echo $this->formRow($form->get('wantNewsletter'));
如果属性wantNewsletter
的值为1
,则会自动选中该复选框。
您拥有的另一个解决方案,实际上是此任务的解决方法,只需在值为1
时呈现属性即可完成。
<input type="checkbox" name="wantNewsletter" value="<?php echo $newsletter->wantNewsletter); ?>" <?php echo $newsletter->wantNewsletter ? 'checked' : ''; ?>>
尽可能使用第一种解决方案,因为它更准确,更符合框架。