2015-05-05 2 views
2

Я отображая имя пользователя LoggedIn в заголовке с $this->Auth->user('name').Обновить Auth пользовательских данных после обновления

Проблема в том, когда я обновляю имя пользователя, как обновить это значение на $this->Auth->user(), потому что после того, как я только что обновил старое имя?

ответ

0

Если вы используете аутентификацию без учета состояния, данные сохраняются и извлекаются из сеанса, поэтому вам просто нужно его обновить.

Например

$this->Auth->session->write($this->Auth->sessionKey . '.name', $newName); 

Или возможно установить полные измененные данные пользователя в случае применимой (обратите внимание, что это будет возобновить сеанс)

$this->Auth->setUser($updatedUserData); 

Смотрите также API > Controller > Component > AuthComponent::_setUser()

+0

Это '$ updatedUserData' должно быть Entity? –

+0

@ DanielFaria Нет, массив, см. ** http: //api.cakephp.org/3.0/class-Cake.Controller.Component.AuthComponent.html#_setUser** – ndm

+0

круто .. если я сохраню как этот '$ this -> Users-> save ($ user) '.. этот' $ user' является сущностью. Поэтому мне нужно использовать '$ user-> toArray()'? –

0

В Аптекатор

public function initialize() 
{ 
    ... 
    $tableUser=TableRegistry::get("Users"); 
    $user=$tableUser->get($this->Auth->user('id')); 

    $this->set(compact('user','...')); 

...

В связи просто использовать $ пользователя [ 'имя'] вы получите имя. Любое обновление в пользователе будет зависеть от пользователя $. Вы можете получить любые поля после обновления пользователя с помощью массива $ user. Я застрял в вашем случае, но я нашел решение давно. Надеюсь, эта работа. Дайте мне знать, если это не сработает. Я записываю в своей памяти так, что это может быть неправильными функциями

Смежные вопросы