رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نمایش نام کاربر وارد شده در یک layout
#1
Information 
با سلام خدمت دوستان عزیز
من می خوام در تمامی صفحاتم نام کاربر وارد شده یه گوشه نمایش داده بشه (مثل فیس بوک که رو اسم خودت کلیک کنی میره تو پروفایلت). برای اینکه می خوام تو کل صفحات نمایش داده بشه می خوام از layoutاستفاده کنم.
چجوری می تونم اطلاعات کاربر login شده رو توی این layout لود کنم؟

برای login شدن از کامپوننت Authentication به صورت زیر استفاده کردم:
کد پی‌اچ‌پی:
$this->loadComponent('Auth', [
 
           'loginRedirect' => [
 
               'controller' => 'Pages',
 
               'action' => 'display'
 
           ],
 
           'logoutRedirect' => [
 
               'controller' => 'Users',
 
               'action' => 'login'
 
           ],
 
           'authError' => 'شما باید ابتدا وارد شوید'
 
       ]); 

همچنین تابع loginبه صورت زیره:
کد پی‌اچ‌پی:
public function login()
 
   {
 
       $this->layout 'lock';
 
       if($this->request->is('post')){
 
           $user $this->Auth->identify();
 
           if($user){
 
               $this->Auth->setUser($user);
 
               return $this->redirect($this->Auth->redirectUrl());
 
           }
 
           $this->Flash->error('نام کاربری یا رمزعبور اشتباه می باشد');
 
       }
 
   
پاسخ
سپاس شده توسط
#2
با استفاده از قطعه کد زیر در هر کدام از layout ها میشه این کارو انجام داد.
کد پی‌اچ‌پی:
$user "";
$loguser $this->Session->read('Auth.User');
if(!empty(
$loguser)){
 
   $user $loguser['first_name']." ".$loguser['last_name'];

پاسخ
سپاس شده توسط saleh
#3
بهتره این کد رو در یک المنت قرار بدید و المنت رو در لایوت درج کنید. تا بتونید از کش هم بهره بگیرید.
پاسخ
سپاس شده توسط akrami ، mr_sawari ، masoudlotfi ، gha3m


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان