Обновление группы пользователей OctoberCMS плагин пользователя rainlab

Как я могу обновить изменить группу пользователей? просто не могу найти это. провел пару часов.

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

Пользователь в связи с принадлежит ToMany с группой.

Не работает.
Благодарю.

10

Решение

Я думаю, что вы можете расширить модель пользователя, чтобы добавить 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);
}
});
});
}

Таким образом, вы можете добавить группу к пользователю с помощью; экземпляр модели группы, коллекция моделей и строка кода модели.

4

Другие решения

я посмотрел на октябрьский пользовательский класс rainlab.

Пользовательский класс связан с групповым классом через belongstoMany связь.

 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 : это сводная таблица, которая содержит связь между таблицей пользователя и группы.

Надеюсь, это поможет 🙂

2

По вопросам рекламы [email protected]