在设置简单的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());
}
}
答案 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')
)));