0

在设置了简单的 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());
  }
}
4

1 回答 1

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')
)));
于 2013-07-18T23:11:12.747 回答