更新用户组OctoberCMS rainlab用户插件

时间:2016-11-21 22:50:32

标签: php laravel plugins octobercms usergroups

如何更新更改用户的组?根本找不到它。花了几个小时。

$user = new User;
$user->group = 'new';
$user->save();

用户与属于集团的belongsToMany有关。

不工作。 感谢。

2 个答案:

答案 0 :(得分:4)

我认为您可以扩展用户模型以添加addUserGroup这样的方法;

public function boot()
{
    User::extend(function($model) {
        $model->addDynamicMethod('addUserGroup', function($group) use ($model) {
            if ($group instanceof Collection) {
               return $model->groups()->saveMany($group);
            }

            if (is_string($group)) {
               $group = UserGroup::whereCode($group)->first();

               return $model->groups()->save($group);
            }

            if ($group instanceof UserGroup) {
               return $model->groups()->save($group);
            }
        });
    });
}

因此您可以向用户添加组;组模型实例,模型集合和模型代码字符串。

答案 1 :(得分:2)

我已经查看了10月份的rainlab用户类。

  

用户类通过 belongsstoMany 关系与Group类链接。

 public $belongsToMany = [
        'groups' => ['RainLab\User\Models\UserGroup', 'table' => 'users_groups'],
        'address' => [
            '\codework\users\models\Address',
            'table'=>'codework_users_user_address',
            'order'=>'addr'
        ]
    ];

因此,当您将用户添加到任何组时,请确保已将该组创建到您的数据库中。

表名 user_groups :这将包含可以分配用户的所有组。

表名 users_groups :这是一个包含用户和组表之间关系的数据透视表。

希望这会有所帮助:)