CakePHP неправильно отображает имя пользователя для входа после входа других пользователей - PullRequest
0 голосов
/ 10 сентября 2018

Я использовал следующий beforeRender в App Controller.

public function beforeRender(Event $event)
{

    if (in_array($this->response->type(), ['application/json', 'application/xml'])) {
        $this->set('_serialize', true);
    }else{

         $this->loadComponent('Auth');  
         $loginuser = $this->Auth->User('username');
         $employee_id = $this->Auth->User('employee_id');
         if($employee_id!=null){
         $loginemployee = TableRegistry::get('Employees')->get($employee_id);

         $roleid = $this->Auth->User('role_id');
         $this->viewBuilder()->theme('AdminLTE');
         $this->viewBuilder()->className('AdminLTE.AdminLTE');
         $this->set('theme', Configure::read('Theme'));

         $sidemenu = null;

         if($roleid==null)
            $sidemenu  = $this->loadmenu(1);
         else
            $sidemenu = $this->loadmenu($roleid);
         $this->set(compact('loginuser','sidemenu','loginemployee'));
     }
    }
}

В макете по умолчанию.

<li class="dropdown user user-menu">
    <a href="#" class="dropdown-toggle" data-toggle="dropdown">
      <?php  if($loginemployee->photo!=null && $loginemployee->photo!='')
      echo $this->Html->image('/files/Employees/photo/'.$loginemployee->photo, array('class' => 'user-image', 'alt' => 'User Image')); 
     else
        echo $this->Html->image('/files/np.jpg'.$loginemployee->photo, array('class' => 'user-image', 'alt' => 'User Image')) ?>
      <span class="hidden-xs"><?=$loginemployee->name?></span>
    </a>
  </li>

Это работает на локальном сервере, а также при низком уровне одновременного использования. При одновременном активном входе более 20. Это покажет другое имя пользователя на экране текущего пользователя вместо его / ее имени.

Как мне решить эту проблему?

...