CakePHP&;更改用户';s剖面图

CakePHP&;更改用户';s剖面图,cakephp,Cakephp,我已经开始学习cakePHP,现在我面临以下问题。如何允许我的用户更改他们的配置文件(他们在数据库中的信息) 这是我的模型->当有人试图注册时,我使用这些验证。 这是我编辑配置文件的方法: 首先,我检查用户是否具有编辑此配置文件的权限(是他自己的配置文件)。 然后获取所需的id并尝试保存请求->数据。。。但不幸的是没有成功 最后这是我的观点-> 我唯一想做的是: -更改他们的电子邮件(如果他们添加新电子邮件) -更改他们的社交档案(如果用户添加) -更改他们的密码(如果他们添加了密码) 你能指导

我已经开始学习cakePHP,现在我面临以下问题。如何允许我的用户更改他们的配置文件(他们在数据库中的信息)

这是我的模型->当有人试图注册时,我使用这些验证。 这是我编辑配置文件的方法:

首先,我检查用户是否具有编辑此配置文件的权限(是他自己的配置文件)。 然后获取所需的id并尝试保存请求->数据。。。但不幸的是没有成功

最后这是我的观点->

我唯一想做的是: -更改他们的电子邮件(如果他们添加新电子邮件) -更改他们的社交档案(如果用户添加) -更改他们的密码(如果他们添加了密码)

你能指导我做这些事情吗


提前谢谢

通常,在调用save时,如:

$this->User->save($this->request->data)
默认情况下,$this->request->data中的数据被清除。在编辑方法中,下面有一个if语句,它再次使用相同的save

我假设您从cakebaked编辑方法复制的默认功能通常执行保存,并使用返回的逻辑为if语句供电。第二次调用它时,可能会返回false,这可能会跳过if语句

要对此进行调试,我建议在不同的位置使用以下几种方法:

debug($this->request->data);
此外,调试打印输出在重定向时被清除,因此您可能希望在if语句中注释掉重定向,如下所示:

if ($this->User->save($this->request->data)) {
    $this->Session->setFlash('Успешно променихте профила си.', 'success_message');
    //$this->redirect(array('action' => 'profile'));
}
我可以做你想做的事

更多@

if($this->Auth->user() && $this->Auth->user('id') == $id) {
    $this->User->read(null, $id);
    $this->User->set(array(
        'email' => $this->data['User']['email'],
        'password' => $this->data['User']['password'],
        'social_profile' => 'bla bla'
    ));
    $this->User->save();
    // etc