CakePHP-允许登录用户编辑其帐户

CakePHP-允许登录用户编辑其帐户,cakephp,fatal-error,Cakephp,Fatal Error,我试图允许用户编辑他们的帐户详细信息,但出现以下错误。(我不熟悉蛋糕…) 错误是“致命错误:在第79行的/home/www/7b8dad242e3d067ccc5448180944bdab/web/shop/Controller/UsersController.php中对非对象调用成员函数user()” 查看:(edit.ctp) 欢迎提出任何建议。非常感谢基本上,您在登录时做错了,您应该为登录使用AuthComponent::login(),而不是自定义登录 执行以下设置 1) 在类的顶部添加

我试图允许用户编辑他们的帐户详细信息,但出现以下错误。(我不熟悉蛋糕…)

错误是“致命错误:在第79行的/home/www/7b8dad242e3d067ccc5448180944bdab/web/shop/Controller/UsersController.php中对非对象调用成员函数user()”

查看:(edit.ctp)


欢迎提出任何建议。非常感谢

基本上,您在登录时做错了,您应该为登录使用AuthComponent::login(),而不是自定义登录

执行以下设置 1) 在类的顶部添加组件

    class AppController extends Controller {

        public $components = array('Auth' => array(
                'authenticate' => array(
                        'Form' => array(
                                'fields' => array('username' => 'email')
                        )
                ),
                'autoRedirect' => false,
//              'loginError' => 'Username or password is incorrect',
        ), 'Session', 'RequestHandler');
2) 您的登录操作应该如下所示

public function login()
    {
            if($this->request->is('post')){
                  if ($this->Auth->login()){
                        // successful login
                  }else{
                        // login failed
                  }
            }
        }
3) 然后,您可以在代码中正确的Auth::user()方法中获取登录用户信息 4) 但若用户密码不在用户模型的行下方,则必须保存在哈希中

保存之前的公共函数($options=array()){


}

您可能想了解一下,您能告诉我您在第79行写了哪些代码吗?
    class AppController extends Controller {

        public $components = array('Auth' => array(
                'authenticate' => array(
                        'Form' => array(
                                'fields' => array('username' => 'email')
                        )
                ),
                'autoRedirect' => false,
//              'loginError' => 'Username or password is incorrect',
        ), 'Session', 'RequestHandler');
public function login()
    {
            if($this->request->is('post')){
                  if ($this->Auth->login()){
                        // successful login
                  }else{
                        // login failed
                  }
            }
        }
if (isset($this->data['User']['password'])) {
    $this->data['User']['password'] = AuthComponent::password($this->data['User']['password']);
}
return true;