CakePHP bir görünümden AuthComponent kullanıcı verilerini almak için kolay bir yolu var mı?

4 Cevap php

Cakebook göre section on the Auth component, ben aşağıdaki Kullanıcılar denetleyici kullanarak basit kimlik doğrulaması uygulayabilirsiniz:

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());
    }
}

Ben benim görüşüme içine aşağıdaki gibi bir şey mümkün olmak istiyorum:

<?php
   $username = $auth->user('username');
   echo "Welcome " . $username;
?>

Bunu yapmak için basit bir yolu var mı, yoksa oturum açma işlevi üzerine ve oturumuna adını saklamak gerekiyor?

Update

Alexander's answer Ben tam olarak ne istediğini. Ancak, ben yaptım gibi bir başkası yaşıyor durumunda aşağıdaki katacak.

Bu Auth kullandığı (örneğin, yerine 'kullanıcı' bir 'kişilerin' tablosu olabilir) modelini değiştirirseniz, o zaman gibi bir şey kullanmak gerektiğini anlamak biraz zaman aldı:

$persondata = $session->read('Auth.Person');

4 Cevap

Aslında bu bilgiler oturumda kolayca kullanılabilir. Bunu kapmak için oturum yardımcıyı kullanın. Ben doğru sözdizimi olduğuna inanıyorum:

$userdata = $session->read('Auth.User');
$username = $session->read('Auth.User.username');

EDIT:

CakePHP 2.X ve sözdizimi olduğunu için:

$userdata = $this->session->read('Auth.User');
$username = $this->session->read('Auth.User.username');

Lütfen AppController bir yöntem ekleyin

function beforeFilter() {
$ath = $this->Auth->user();
$this->set('userDetails', $ath['User']);
}

Ve sonra $ userDetails aracılığıyla görüş ve / veya düzenler erişebilirsiniz

CakePHP kılavuzda AuthComponent-Yöntemleri Çıkış ....

Bir kullanıcı $ this-> Auth-> Kullanıcı () üzerinden oturumunda oturum açtıktan sonra bir kullanıcı bilgisi erişebilirsiniz. Eğer kullanıcı adı istiyorsanız, sadece denetleyicisi bu kullanın.

$ This-> set ('username', $ this-> Auth-> User ('username'));

Şimdi görünümünde $ adınızı kullanabilirsiniz.

Görünümlerinde Auth değişkenler erişmek için sadece bunu:

echo $session->read('Auth.User.id');