Cakephp 3.6.14: сделать выбор в контроллере для поля выбора и отключить его - PullRequest
0 голосов
/ 23 января 2019

У меня есть таблица Users с 2 полями (среди прочих): id | name.В контроллере, который я передаю $userid, если это $userid не равно нулю, тогда поле формы для пользователя должно быть заполнено именем пользователя, если $userid равно нулю, тогда это поле должно быть полем выборасо всеми пользователями приложения.

Я успешно построил часть поля выбора (где $userid равно нулю), но не могу понять (если $userid не равно нулю), как выбрать правильное имя в поле выбораи отключите его, чтобы его нельзя было изменить.

Вот код контроллера :

public function add($userid = null)
{ 
       ......
       $usersTo = $this->Tasks->UsersTo->find('list', ['limit' => 200]);
       ......
}

И код View :

 .....
 echo $this->Form->control('assigned_to', ['options' => $usersTo, 'empty' => true]);
 .....

1 Ответ

0 голосов
/ 23 января 2019

Вы можете попробовать это:

Код контроллера:

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
...