在这种形式中,我看不到select的名称,这个下拉列表不起作用,我的代码是:
在控制器中我有:
public function admin_cambiar_centro() {
$this->Session->write(
'Auth.User.centro_id',
$this->request->data('CambioCentro.centro_id')
);
$this->redirect($this->referer());
}
在视图中:
<?= $this->Form->create('CambioCentro', array(
'url' => array(
'controller'=> 'Users',
'action' => 'cambiar_centro'
)
)) ?>
<?= $this->Form->select('centro_id',
Hash::combine(AuthComponent::User('Centro'), '{n}.id', '{n}.nombre'),
array(
'empty' => false,
'value' => AuthComponent::User('centro_id'),
'style' => 'margin-top: 7px;',
'onchange' => 'this.form.submit()',
)); ?>
<?=$this->Form->end()?>
如果你能帮助我,我会非常感激
答案 0 :(得分:0)
您的表单网址看起来不正确。尝试添加admin =&gt;表格的网址是真的。
<?=$this->Form->create('CambioCentro', array('url' =>
array('controller'
=> 'Users', 'action' => 'cambiar_centro', 'admin' => true)))?>
另一个潜在的问题是你正在写入会话并重定向每个请求,因此你可以创建一个重定向循环,并且在获取请求时会覆盖会话变量。
检查操作中的请求类型:
public function admin_cambiar_centro() {
if($this->request->is('post')) {
$this->Session->write('Auth.User.centro_id',
$this->request->data('CambioCentro.centro_id'));
return $this->redirect($this->referer());
}
}