编辑HABTM模型时选中复选框

时间:2013-09-05 17:55:04

标签: cakephp checkbox cakephp-2.0

我需要帮助

我有2个模特:律师和权力。

其中:Attorney HABTM Powers

当我添加新的律师时,我选择了许多与权力相对应的复选框。

我的问题是:当我编辑律师时,如何选中复选框?他们不做。

edit.ctp的一部分

<div class="control-group">
<label class="control-label">Poderes:</label>
<div class="controls">
<?php foreach ($poderes as $power):  ?>
<div class="checkbox tooltip" title="<?php echo $power['Power']['texto'] ?>">
<input type="checkbox" value="<?php echo $power['Power']['id'] ?>"  />
<label><?php echo $power['Power']['resumo'] ?></label>
</div>

我的编辑控制器。

 function edit($id = null) {


$this->set('poderes',$this->Attorney->Power->find('all'));
$this->Attorney->id = $id;

     if ($this->request->is('get')) {
        $this->request->data = $this->Attorney->read();

    } else {

        if ($this->Attorney->save($this->request->data) {


        $this->Session->setFlash('Usuário editado com sucesso!', 'default', array('class' => 'flash_sucess'));
        $this->redirect(array('action' => 'pesquisar'));
}
}

编辑:使用$this->Form->input('Power', array('checkbox' => 'multiple'));

的结果图像

The result of the first anwser

1 个答案:

答案 0 :(得分:3)

您应该正确使用Form帮助器,然后您需要做的就是阅读Power的列表,并将checkbox作为multiple选项的值传递给FormHelper::input()。 CakePHP将完成剩下的工作并检查相应的复选框。

http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::input
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::select

此外,您应该遵循CakePHP命名约定并使用英语进行模型/(视图)变量名称等,即不使用poderes,使用Power的相应复数,即{{1} }}

<强>控制器

powers

请注意,Model::find('list')需要正确使用Model::$displayField

查看

...
$this->set('powers', $this->Attorney->Power->find('list'));
$this->Attorney->id = $id;
...