cakephp 3 предварительно введите данные пользователя в текстовое поле - PullRequest
2 голосов
/ 14 октября 2019

У меня обновлен профиль и моя форма полностью работает. Мне нужно, когда я загружаю эту форму, она должна быть предварительно заполнена значениями базы данных, а не пустыми. я не хочу использовать сессии. Я использую версию CakePHP 3.8 и в файле update_profile.ctp у меня есть код ниже

echo $this->Form->control('firstname',['minlength'=>3, 'value'=>'' ]);
echo $this->Form->control('lastname',['minlength'=>3]);

Ответы [ 2 ]

2 голосов
/ 16 октября 2019

Ниже приведена обновленная функция

public function updateProfile() {
     $user = $this->Users->newEntity();
     $userId = $this->Auth->user('id');
     $userData = $this->Users->get($this->Auth->user('id'));
     if ($this->request->is('post')) {
       //has post data execution code
     }
     //$this->set(compact('user'));
     $this->set(compact('userData'));
 }

Вы передали переменную "user", вы должны передать userData, так как в этой переменной вы извлекли данные пользователя. Как только это будет передано, форма будет заполнена pr.

1 голос
/ 14 октября 2019

Мы можем передать данные в файл update_profile.ctp из контроллера, используя $ this-> set (compact ('Users'));

здесь users - это таблица в базе данных, которая имеет поля с именем 'firstname','фамилия'

Тогда мы можем использовать его в нашей форме, как

echo $this->Form->control('firstname',['minlength'=>3, 'value'=>'' ]);
echo $this->Form->control('lastname',['minlength'=>3]);
...