2016-11-21 8 views
9

मैं उपयोगकर्ता के समूह को कैसे बदल सकता हूं? बस इसे नहीं मिला। कुछ घंटे बिताए।अद्यतन उपयोगकर्ता समूह अक्टूबरसीएमएस rainlab उपयोगकर्ता प्लगइन

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

उपयोगकर्ता समूह के साथ संबंधित ToMany के संबंध में है।

काम नहीं कर रहा है। धन्यवाद।

उत्तर

2

मैंने अक्टूबर में बारिशबैब उपयोगकर्ता वर्ग में देखा है।

उपयोगकर्ता कक्षा से संबंधित समूह वर्ग से जुड़ा हुआ है संबंध।

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

तो जब आप किसी भी समूह से उपयोगकर्ता जोड़ रहे हैं सुनिश्चित करें कि आप है कि समूह पहले से ही अपने डेटाबेस में बनाया सुनिश्चित करें।

तालिका का नाम उपयोगकर्ता_ग्रुप: इसमें सभी समूह शामिल होंगे जिसमें उपयोगकर्ता को असाइन किया जा सकता है।

तालिका का नाम उपयोगकर्ता_ग्रुप: यह एक पिवट तालिका है जिसमें उपयोगकर्ता और समूह तालिका के बीच संबंध शामिल है।

आशा इस में मदद मिलेगी :)

+0

मुझे पिवट तालिका के बारे में पता है। लेकिन मुझे $ user-addUsergroup ('groupname') जैसे फ़ंक्शन या प्रॉपर्टी नहीं मिली; मुझे पता है कि मैं सीधे रास्ता बना सकता हूं - अपडेट (टेबल .. ब्लै ब्लै)। मुझे यकीन था कि एक आसान तरीका है। और अधिकांश "अक्टूबर" रास्ता – 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

धन्यवाद परीक्षण। बिल्डिन मोड – aleXela

+0

हाय खोजने की कोशिश की, मैंने स्ट्रिंग पैरामीटर के साथ अपने कोड का परीक्षण किया और यह काम किया। – Meysam

+0

नहीं। ऐसा इसलिए क्योंकि आपने संपादित किया :) धन्यवाद @ मेयसम – Surahman

संबंधित मुद्दे