CakePHP:使用不同的用户表

时间:2013-07-18 20:39:13

标签: cakephp authentication

在设置简单的Cakephp登录概念之后,我想让CakePHP使用不同的表来检查用户和登录。我无法弄清楚如何更改Auth组件中的表名。

在我的基本控制器下面。我怎么能让Cakephp知道它必须查看不同的数据库表?

class AppController extends Controller {
  public $components = array(
      'Session',
      'Auth'=>array(
          'loginRedirect'=>array('controller'=>'users', 'action'=>'index'),
          'logoutRedirect'=>array('controller'=>'users', 'action'=>'index'),
          'authError'=>"You can't access that page",
          'authorize'=>array('Controller')
      )
  );

  public function isAuthorized($user) {
      return true;
  }

  public function beforeFilter() {
      //$this->Auth->allow('index', 'view');

      $this->set('siteCategory', 'home');   
      $this->set('logged_in', $this->Auth->loggedIn());
      $this->set('current_user', $this->Auth->user());
  }
}

1 个答案:

答案 0 :(得分:3)

最佳解决方案:

这是在User模型中使用useTable属性完成的。

即。在app/Model/User.php中你应该有这样的东西:

class User extends AppModel {

    public $useTable = 'table_name';

    //... rest of Model stuff here

}

替代:

或者你可以指定一个不同的模型用于用户,虽然我不认为这是你要求的。如果我错在那里,只需设置userModel这样的值:

public $components = array(
      'Auth'=>array(
          'authenticate'=>array(
              'Form' => array('userModel' => 'ADifferentUserModel')
)));
相关问题