我正在努力将身份验证和授权集成到我的CakePHP应用程序中,并且遇到了一些困难。
首先,我没有使用ACL。 让我感到害怕。
在我的AppController中我有这个:
var $components = array("Auth");
因此,无论何时我想检查登录用户,我都会从我的一个控制器中调用它:
$this->Auth->user();
我得到一个数组,这是我usrs
表中的信息(我的表名为usrs
,模型为Usr
}。
问题是我经常想在Usr
模型上调用函数,所以我必须在我的控制器中执行此操作:
$usr = ClassRegistry::init('Usr');
$usrInfo = $this->Auth->user();
$usr->set($usrInfo);
// -- or --
$usr = ClassRegistry::init('Usr');
$usrId = $this->Auth->user('id');
$usr->id = $usrId;
这似乎不是很好吃,而且一直困扰着我,因为我知道必须有更好的方法。我应该将var $uses = array("Usr")
添加到我的AppController中,这样我就不必一直使用ClassRegistry吗?最好的方法是什么?
答案 0 :(得分:1)
为什么不只是use
模特?
// in Controller
var $uses = array('someModel', 'User');
这样可以照常使用该模型:
$this->User->someFunction($this->Auth->user('id')); // for example
答案 1 :(得分:0)
我刚发现一种方法可以在一行中完成:
$this->loadModel('Usr', $this->Auth->user('id'))
我仍然不知道这是不是最好的做法......