2013-06-21 16 views
6

के रूप में करते हुए मैं अपना पहला लैरावेल 4 ऐप स्थापित कर रहा हूं और आईडी फ़ील्ड के लिए चश्मा कॉलर (36) होने के लिए कॉल करता हूं और यूयूआईडी बनता हूं।लार्वेल 4 यूयूआईडी का उपयोग प्राथमिक कुंजी

सुवक्ता का उपयोग करना, एक नमूना तालिका के लिए मेरे माइग्रेशन इस तरह दिखता है:

Schema::create('users', function($table) 
{ 
    $table->string('id', 36)->primary; 
    $table->string('first_name', 50); 
    $table->string('last_name', 50); 
    $table->string('email')->unique(); 
    $table->string('password', 60); 
    $table->timestamps(); 
    $table->softDeletes(); 
}); 

जब उपयोगकर्ता तालिका बनाया जाता है, आईडी फ़ील्ड पी, या अद्वितीय के रूप में परिभाषित नहीं है। इसे वर्कर (36) न्यूल के रूप में परिभाषित किया जाता है।

माइग्रेशन चलाने पर यह क्यों हो रहा है?


मेरे मूल प्रश्न UUIDs का उपयोग कर के बारे में था, लेकिन मैं समझ हल है कि और मामले किसी को भी मेरे उपयोगकर्ता मॉडल को यह जोड़कर इस पोस्ट को देखता है:

protected $hidden = array('password'); 

protected $fillable = array('id', 'first_name', 'last_name', 'email', 'password'); 

यहाँ एक जोड़ने के लिए मेरे मार्ग है उपयोगकर्ता (मैं UUID बनाने के लिए एक समारोह का उपयोग कर रहा): यह लाइन

Route::post('signup', function() 
{ 
    $userdata = array(
     'id' => gen_uuid(), 
     'first_name' => Input::get('first_name'), 
     'last_name' => Input::get('last_name'), 
     'email' => Input::get('email'), 
     'password' => Hash::make(Input::get('password'))  
    ); 

    $user = new User($userdata); 
    $user->save(); 

    return View::make('login/login')->with('userdata', $userdata); 
}); 
+3

लिए परिवर्तित किया जाना चाहिए -> प्राथमिक या -> प्राथमिक()? –

+0

हाँ! इसे एक उत्तर बनाओ। – Jazzy

+0

यूयूआईडी उत्पन्न करने के लिए आप किस फ़ंक्शन का उपयोग कर रहे हैं? क्या यह लैरावेल में कस्टम या बनाया गया है? – Mike

उत्तर

8

$table->string('id', 36)->primary; 

$table->string('id', 36)->primary(); 
संबंधित मुद्दे