2013-06-21 10 views
6

私は最初のLaravel 4アプリケーションをセットアップしています。仕様では、idフィールドがvarchar(36)でUUIDであることが必要です。雄弁を使用してLaravel 4プライマリキーとしてUUIDを使用

、サンプルテーブルのための私の移行は次のようになります。ユーザーテーブルが作成されるとき

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

、idフィールドがPK、またはユニークとして定義されていません。 varchar(36)NOT NULLとして定義されます。

なぜ私は移行を実行していますか?


私の元の質問にはUUIDを使用してについてだったが、私は場合には、私のユーザーモデルにこれを追加することによって、他の誰がこの記事を見ている感覚を解決している。ここで

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

あなたはUUIDを生成するためにどのような機能を使用していますか?それはカスタムですか、またはLaravelに組み込まれていますか? – Mike

答えて

8

このライン

$table->string('id', 36)->primary; 
>プライマリまたは - - >主()

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