我正在使用public class MenuConcerts extends Fragment {
ArrayList<Concert> arrayConcert = new ArrayList<Concert>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.concerts_layout, container, false);
((MainActivity) getActivity()).setActionBarTitle(getString(R.string.title_spelningar));
// all the reading file logic here;
ListAdapter listAdapter = new CustomerAdapter(getActivity(), arrayConcert);
return view;
}
}
在标题中显示已登录用户的名称。
问题是,当我更新用户名时,如何在$this->Auth->user('name')
刷新此值,因为在我刚刚更新了旧名称之后呢?
答案 0 :(得分:0)
除非您使用无状态身份验证,否则会从会话中存储和检索数据,因此您只需要在那里进行更新。
例如
$this->Auth->session->write($this->Auth->sessionKey . '.name', $newName);
或者可以在适用的情况下设置完整的修改后的用户数据(请注意,这将更新会话)
$this->Auth->setUser($updatedUserData);
另请参阅 API > Controller > Component > AuthComponent::_setUser()
答案 1 :(得分:0)
在Appcontroller中
public function initialize()
{
...
$tableUser=TableRegistry::get("Users");
$user=$tableUser->get($this->Auth->user('id'));
$this->set(compact('user','...'));
...
在视图中只需使用$ user [&#39; name&#39;]即可获得该名称。用户的任何更新都会影响到$ user。使用array $ user更新用户后,您可以获取任何字段。 我坚持你的情况,但很久以前我找到了解决方案。希望这项工作。如果它不起作用,请告诉我。我在记忆中写出来,这可能是错误的功能