CakePHP аутентификация и модель пользователя - PullRequest
1 голос
/ 11 сентября 2009

Сейчас я работаю над интеграцией аутентификации и авторизации в мое приложение 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 ]

1 голос
/ 11 сентября 2009

Почему бы вам не просто use модель?

// in Controller
var $uses = array('someModel', 'User');

Это делает модель доступной как обычно:

$this->User->someFunction($this->Auth->user('id'));  // for example
0 голосов
/ 11 сентября 2009

Я только что нашел один способ сделать это в одной строке:

$this->loadModel('Usr', $this->Auth->user('id'))

Я до сих пор не знаю, является ли это лучшей практикой, хотя ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...