2015-02-02 11 views
12

डालने मैं तीन टेबल है,Laravel जोड़ने डेटा जबकि नया रिकार्ड

roles(id, name); 
users(id, email, password); 
user_role(id, user_id, role_id); 

इस परिदृश्य में, मैं उन तालिका कई संबंध बनाने के लिए कई के साथ भूमिकाओं मेज पर जुड़ा हुआ है है।

मैं अब, सवाल यह है कि जब मैं भूमिकाओं है कि मैं उपयोगकर्ताओं को असाइन करना चाहते हैं की आईडी के साथ एक नया उपयोगकर्ता जोड़ना चाहते हैं के रूप में

Role 
+users(){ 
    belongsToMany('User') 
} 

User 
+roles(){ 
    belongsToMany('Role') 
} 

दो वाक्पटु मॉडल है। मैं लैवेलवेल सर्वोत्तम प्रथाओं के साथ पिवट तालिका में मूल्य कैसे डाल सकता हूं?

मेरे मौजूदा कोड है: -

$roles = Input::get('roles'); // arrays of role ids 

$user = new User(); 
$user->username = Input::get('username'); 
$user->password = Hash::make(Input::get('password')); 
$user->save(); 

आगे क्या करना है ???

+0

बस यहाँ की तरह: http://laravel.com/docs/4.2/eloquent#inserting-related-models –

उत्तर

12

यह वास्तव में सभी described in the documentation है। एसओ पर एक प्रश्न पूछने से पहले दस्तावेज में दिए गए खंड को पढ़ें।

$user = new User(); 
$user->username = Input::get('username'); 
$user->password = Hash::make(Input::get('password')); 
$user->save(); 
$user->roles()->attach($roles); 

महत्वपूर्ण हिस्सा आप भूमिकाओं संलग्न करने से पहले उपयोगकर्ता को बचाने के लिए क्योंकि अन्यथा उपयोगकर्ता में इस्तेमाल किया जाएगा अभी तक एक आईडी नहीं है है है:

फिर भी, यहाँ तुम कैसे करते है पिवट तालिका।

+0

मैं इसे करने की कोशिश की है, लेकिन यह एक त्रुटि लौट रहा है, अपरिभाषित विधि के लिए कॉल रोशन \\ डाटाबेस \\ सुवक्ता \\ संग्रह :: संलग्न करें() –

+3

ऐसा लगता है कि आप '$ उपयोगकर्ता-> भूमिकाएं-> संलग्न ($ भूमिकाएं) कर रहे हैं ... – lukasgeiter

+2

बस स्पष्ट करने के लिए, कोष्ठक मायने रखता है! '' 'उपयोगकर्ता-> भूमिकाएं()' '' '' '' उपयोगकर्ता-> भूमिकाएं '' – dloomb

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