Laravel 4 -在新用户注册后添加记录


laravel 4 - add record to new user after registeration

我想将记录添加到新用户后再生完成的问题,我得到用户->id与空值后调用user->save()。

我的代码

public function register(){
    $input=Input::all();
    $rules=array(
        'username'=>'required|unique:bradoseusers|alphaNum|min:2',
        'email'=> 'required|unique:bradoseusers|email',
        'password'=>'required|alphaNum|min:6'
    );
    $v=Validator::make($input,$rules);
    if($v->passes())
    {   
        $password=$input['password'];
        $password=Hash::make($password);
        $user=new Bradoseusers();
        $user->username=$input['username'];
        $user->Email=$input['email'];
        $user->password=$password;
        $user->save();
        return Redirect::to('login');
    }
    else
    {
        return Redirect::to('/Register')->withErrors($v);
    }
}

您可以尝试这样做:

public function register()
{
    $input=Input::all();
    $rules=array(...);
    $v = Validator::make($input,$rules);
    if($v->passes()) {   
        $user = new Bradoseusers;
        $user->username = $input['username'];
        $user->Email = $input['email'];
        $user->password = Hash::make($input['password']);
        $user->save();
        // probably you want to redirect to
        // default landing page for logged in user
        return Redirect::to('login'); // i.e /dashboard or /
    }
    else {
        return Redirect::to('/Register')->withErrors($v)->withInput();
    }
}

问题是我在模型中设置了primaryKey属性为"Email"。这样就会覆盖主键值这样就不会有"id"字段了