2016-11-21 11 views

ответ

2

Я просмотрел класс пользователей rainclub октябрь.

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

Надеется, что это поможет :)

+0

Я знаю о сводной таблице. Но я не нашел функцию или свойство, как $ user-addUsergroup ('groupname'); Я знаю, что могу сделать прямой путь - обновить (таблица .. bla bla). Я был уверен, что есть простой способ. И большинство "Октябрь" способ – aleXela

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); 
      } 
     }); 
    }); 
} 

Для того, чтобы добавить альбом в группу: экземпляр групповой модели, набор моделей и строка кода модели.

+0

спасибо тестирования. попытался найти buildin mode – aleXela

+0

Привет, я проверил ваш код со строковым параметром, и он сработал. – Meysam

+0

Nope. Потому что вы отредактировали :) Спасибо @Meysam – Surahman

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

  • Нет связанных вопросов^_^