2

我有更新的个人资料视图,我的表格可以正常工作。当我加载此表单时,我需要它应该预先填充数据库值而不是空的。我不想使用会话。我正在使用 cakephp 3.8 版本,在 update_profile.ctp 文件中我有以下代码

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

2 回答 2

2

我们可以使用 $this->set(compact('Users')); 将数据从控制器传递到 update_profile.ctp 文件中。

这里的 users 是数据库中的一个表,其中包含名为“firstname”、“lastname”的字段

然后我们可以以我们的形式使用它

echo $this->Form->control('firstname',['minlength'=>3, 'value'=>'' ]);
echo $this->Form->control('lastname',['minlength'=>3]);
于 2019-10-14T15:49:03.260 回答
2

下面给出的是更新的功能

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'));
 }

你已经传递了“用户”变量,你必须传递 userData,因为在这个变量中你已经获取了用户的详细信息。一旦通过,表单将得到 pr-populated。

于 2019-10-16T07:19:39.767 回答