在CakePHP中,如何创建来宾帐户而不实际将其放入db中?

在CakePHP中,如何创建来宾帐户而不实际将其放入db中?,cakephp,model,Cakephp,Model,所以我有一个非常典型的用户模型,没有什么特别之处。我希望能够在没有其他用户登录时将此模型用作来宾用户 有没有办法在CakePHP中创建来宾帐户,或者在没有设置帐户时创建某种默认帐户,以便Auth包含该帐户 因此,例如,id将设置为0,username将设置为guest,等等 谢谢,, James您可以覆盖用户模型中的find方法,这样当Auth调用它(内部)时,您可以截取它并返回您想要的任何内容。类似这样的内容(在您的用户模型上): 您可以在您的用户模型中覆盖find方法,这样当Auth调用它(

所以我有一个非常典型的用户模型,没有什么特别之处。我希望能够在没有其他用户登录时将此模型用作来宾用户

有没有办法在CakePHP中创建来宾帐户,或者在没有设置帐户时创建某种默认帐户,以便Auth包含该帐户

因此,例如,id将设置为0,username将设置为guest,等等

谢谢,,
James

您可以覆盖
用户
模型中的
find
方法,这样当
Auth
调用它(内部)时,您可以截取它并返回您想要的任何内容。类似这样的内容(在您的
用户
模型上):


您可以在您的
用户
模型中覆盖
find
方法,这样当
Auth
调用它(内部)时,您可以截取它并返回您想要的任何内容。类似这样的内容(在您的
用户
模型上):


只需将其添加到会话中

$this->Session->write(AuthComponent::$sessionKey, array(
  'User' => array(
    'id' => 0,
    'username' => 'guest'
   )
));

只需将其添加到会话中

$this->Session->write(AuthComponent::$sessionKey, array(
  'User' => array(
    'id' => 0,
    'username' => 'guest'
   )
));
在AppController中:

public function beforeFilter() {    
    if(!$this->Auth->loggedIn()){
        $this->loadModel('User');
        $user = $this->User->findById(0); //Guest user id
        $this->Auth->login($user['User']);
    }
}
这在CakePHP2.2中非常适用。 它允许通过AppController中的web界面进行权限配置,包括来宾权限:

public function beforeFilter() {    
    if(!$this->Auth->loggedIn()){
        $this->loadModel('User');
        $user = $this->User->findById(0); //Guest user id
        $this->Auth->login($user['User']);
    }
}
这在CakePHP2.2中非常适用。
它允许通过web界面进行权限配置,包括来宾的权限:

这可以工作,但有点太多了。。嗯,钝力,我正试图以一种更流畅的方式来做。我想我可能已经找到了一个解决方案,谢谢你的意见!我很想看看你有什么想法!当然,一旦我解决了问题,我会把它发布给其他人使用。:)这可能行得通,但有点太。。嗯,钝力,我正试图以一种更流畅的方式来做。我想我可能已经找到了一个解决方案,谢谢你的意见!我很想看看你有什么想法!当然,一旦我解决了问题,我会把它发布给其他人使用。:)这看起来很有趣,我也许能让它工作。我会试着回来更新我的结果。非常感谢。这看起来很有趣,我也许能让它工作。我会试着回来更新我的结果。非常感谢。