我有一个Users
表,其中包含2个字段(除其他字段外):id | name
。在控制器中,我正在传递一个$userid
,如果此$userid
不为null,则用户的表单字段必须填写用户名,如果$userid
为null,则此字段必须是包含应用程序所有用户的选择框。
我已经成功构建了选择框的一部分(其中$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]);
.....
答案 0 :(得分:1)
您可以尝试以下方法:
控制器代码:
public function add($userid = null)
{
/* Set userid on your view if user id is not empty code */
if (!empty($userid)) {
$this->set(compact('userid'));
}
......
$usersTo = $this->Tasks->UsersTo->find('list', ['limit' => 200]);
......
}
查看代码:
$disabled = false;
$selectedUser = '';
if (!empty($userid)) {
$disabled = true; // set disabled property true if userid is not empty
$selectedUser = $userid; // set userid as selected user
}
echo $this->Form->control('assigned_to',['options' => $usersTo, 'empty' => true, 'value' => $selectedUser, 'disabled' => $disabled]); // pass disabled and selectedUser here