Cakephp 3.6.14:在控制器中为视图中的选择框进行选择并将其禁用

时间:2019-01-23 12:15:58

标签: php forms cakephp combobox field

我有一个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]);
 .....

1 个答案:

答案 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