CakePHP身份验证和用户模型

时间:2009-09-11 03:29:05

标签: php cakephp

我正在努力将身份验证和授权集成到我的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吗?最好的方法是什么?

2 个答案:

答案 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'))

我仍然不知道这是不是最好的做法......