修改用户

前面我们说过了 创建一个用户,本节我们学习如何修改一个用户

首先,我们弄清楚,我们的需求是什么

1、更新用户信息

2、更新用户信息,并且更新用户组

这些在 sentry 中也是非常简单的,我们先说更新用户信息

仅更新用户信息

  1. try
  2. {
  3. // 根据id 查询用户
  4. $user = Sentry::findUserById(1);
  5. // 更新用户的属性
  6. $user->email = 'yccphp@163.com';
  7. $user->first_name = 'Yuan';
  8. // 执行更新
  9. if ($user->save())
  10. {
  11. // 更新成功
  12. }
  13. else
  14. {
  15. // 更新失败
  16. }
  17. }
  18. catch (Cartalyst\Sentry\Users\UserExistsException $e)
  19. {
  20. echo 'login 字段是必须的';
  21. }
  22. catch (Cartalyst\Sentry\Users\UserNotFoundException $e)
  23. {
  24. echo '用户不存在';
  25. }

先查询用户,查询出来后修改用户的属性,最后调用 save 方法进行保存,是不是很简单呢?

好了,我们接着说第二种需求,更新用户时,把用户组也更新了,

也就是,这个用户本来是 超级 vip 会员组,给他更新资料的时候,顺带把他的组更新为 普通会员 用户组

更新用户信息顺带更新绑定的用户组

  1. try
  2. {
  3. // 查询用户
  4. $user = Sentry::findUserById(1);
  5. // 查出 新的用户组
  6. $adminGroup = Sentry::findGroupById(1);
  7. // 把 用户 与 用户组绑定
  8. if ($user->addGroup($adminGroup))
  9. {
  10. // 绑定成功
  11. }
  12. else
  13. {
  14. // 绑定失败
  15. }
  16. // 更新用户信息
  17. $user->email = 'john.doe@example.com';
  18. $user->first_name = 'John';
  19. // 执行保存动作
  20. if ($user->save())
  21. {
  22. // 保存成功
  23. }
  24. else
  25. {
  26. // 保存失败
  27. }
  28. }
  29. catch (Cartalyst\Sentry\Users\UserExistsException $e)
  30. {
  31. echo 'login 字段是必须的';
  32. }
  33. catch (Cartalyst\Sentry\Users\UserNotFoundException $e)
  34. {
  35. echo '用户不存在';
  36. }
  37. catch (Cartalyst\Sentry\Groups\GroupNotFoundException $e)
  38. {
  39. echo '用户组不存在';
  40. }

是不是很简单,就是根据 用户组 id 查出需要绑定的用户组 ,

根据 用户id 查出 绑定的用户

然后调用 addGroup ,就更新了它绑定的用户组啦

更新用户,就这么多,非常简单是吧?