我需要帮助
我有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'));
答案 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;
...