Według cakebook section on the Auth component mogę realizować proste uwierzytelnianie za pomocą następującego kontroler użytkownicy:Czy istnieje prosty sposób na uzyskanie danych użytkownika AuthComponent z widoku w CakePHP?
class UsersController extends AppController {
var $name = 'Users';
var $components = array('Auth'); // Not necessary if declared in your app controller
/**
* The AuthComponent provides the needed functionality
* for login, so you can leave this function blank.
*/
function login() {
}
function logout() {
$this->redirect($this->Auth->logout());
}
}
Chciałbym móc coś jak następuje w moim zdaniem:
<?php
$username = $auth->user('username');
echo "Welcome " . $username;
?>
Is istnieje prosty sposób, aby to zrobić, czy muszę nadpisać funkcję logowania i zapisać nazwę użytkownika w sesji?
Aktualizacja
Alexander's answer jest dokładnie to, co chciałem. Dodam jednak, na wypadek, gdyby ktoś wpadł w zakłopotanie, tak jak ja.
Zajęło mi trochę czasu, aby zrozumieć, że jeśli zmieni się model, który używa uwierzytelniania (na przykład, może mieć tabeli „Osoby” zamiast „Użytkownicy”), to trzeba użyć czegoś takiego:
$persondata = $session->read('Auth.Person');
Dziękuję. Właśnie tego szukałem. –
Powinieneś użyć tej składni w CakePHP 2.x $ userdata = $ this-> session-> read ('Auth.User'); $ username = $ this-> session-> read ('Auth.User.username'); – vinzcelavi
Uwaga: przynajmniej w Cakephp 2.7 nie działa, musi to być $ this-> Sesja .... S w sesji musi być wielkimi literami –