Cakephp 3.6.14:在控制器中为视图中的选择框进行选择并禁用它
我有一个Cakephp 3.6.14:在控制器中为视图中的选择框进行选择并禁用它,php,forms,cakephp,combobox,field,Php,Forms,Cakephp,Combobox,Field,我有一个Users表,其中包含两个字段:id | name。在控制器中,我正在传递一个$userid,如果此$userid不为空,则用户的表单字段必须填写用户名称,如果$userid为空,则此字段必须是包含应用程序所有用户的选择框 我已经成功构建了选择框的一部分(其中,$userid为空),但我不知道(如果$userid不为空)如何在选择框中选择正确的名称并将其禁用,以便无法更改 以下是控制器代码: public function add($userid = null) { ..
Users
表,其中包含两个字段:id | name
。在控制器中,我正在传递一个$userid
,如果此$userid
不为空,则用户的表单字段必须填写用户名称,如果$userid
为空,则此字段必须是包含应用程序所有用户的选择框
我已经成功构建了选择框的一部分(其中,$userid
为空),但我不知道(如果$userid
不为空)如何在选择框中选择正确的名称并将其禁用,以便无法更改
以下是控制器代码:
public function add($userid = null)
{
......
$usersTo = $this->Tasks->UsersTo->find('list', ['limit' => 200]);
......
}
.....
echo $this->Form->control('assigned_to', ['options' => $usersTo, 'empty' => true]);
.....
以及查看代码:
public function add($userid = null)
{
......
$usersTo = $this->Tasks->UsersTo->find('list', ['limit' => 200]);
......
}
.....
echo $this->Form->control('assigned_to', ['options' => $usersTo, 'empty' => true]);
.....
您可以尝试以下方法:
控制器代码:
查看代码:
但是有一个bug。。。如果在我提交表单
$this->request->getData('assigned_to')
时禁用了选择并选择了用户名,则该表单为空:(如果我删除'disabled'=>$disabled
,它会工作,它会传递正确的值yes,因为您使用了disabled。您必须使用readonly而不是disabled。如果元素被禁用,Cakephp不会发送元素的值。