2016-05-17 139 views
0

我建立在Laravel 5.2一个简单的用户注册和它真的快把我逼疯了。Laravel 5.2 - 注册

我从默认的Laravel内置登记制度开始加入一些额外的领域。

我的情况包括以下文件:

routes.php文件

// Registration routes... 

Route::get('auth/register', function(){ 
    $organisations = Organization::all(); 

    return view('auth.register', ['organizations' => $organisations]); 
}); 

Route::post('auth/register', 'Auth\[email protected]'); 

user.php的

class User extends Model implements AuthenticatableContract, 
           AuthorizableContract, 
           CanResetPasswordContract 
{ 
use Authenticatable, Authorizable, CanResetPassword; 

/** 
* The database table used by the model. 
* 
* @var string 
*/ 
protected $table = 'users'; 

/** 
* The attributes that are mass assignable. 
* 
* @var array 
*/ 
protected $fillable = ['organization_id', 'team_id', 'lastname', 'firstname', 'login', 'password']; 

/** 
* The attributes excluded from the model's JSON form. 
* 
* @var array 
*/ 
protected $hidden = ['password', 'remember_token']; 

/** 
* Get the user's organisation. 
*/ 
public function organization(){ 
    return $this->belongsTo('App\Organization'); 
} 

/** 
* Get the user's team. 
*/ 
public function team(){ 
    return $this->belongsTo('App\Team'); 
} 
} 

Organization.php

class Organization extends Model 
{ 
protected $table = 'organizations'; 
public $timestamps = false; 

protected $fillable = ['name']; 

/** 
* Get the authors for the organization. 
*/ 
public function users() 
{ 
    return $this->hasMany('App\Users'); 
} 

/** 
* Get the teams for the organization. 
*/ 
public function teams() 
{ 
    return $this->hasMany('App\Teams'); 
} 

} 

Team.php

class Team extends Model 
{ 
protected $table = 'teams'; 
public $timestamps = false; 

/** 
* Get the team's organisation 
*/ 
public function organisation() 
{ 
    return $this->belongsTo('App\Organisation'); 
} 

/** 
* Get the authors for the team. 
*/ 
public function users() 
{ 
    return $this->hasMany('App\Users'); 
} 

} 

AuthController.php

/ 
/....... 
/...... 
/

/** 
* Get a validator for an incoming registration request. 
* 
* @param array $data 
* @return \Illuminate\Contracts\Validation\Validator 
*/ 
protected function validator(array $data) 
{ 
    return Validator::make($data, [ 
     'firstname'  => 'required|max:255', 
     'lastname'  => 'required|max:255', 
     'login'   => 'required|max:255', 
     'organization' => 'required|max:255', 
     'team'   => 'required|max:255', 
     'password'  => 'required|confirmed|min:4', 
    ]); 
} 

/** 
* Create a new user instance after a valid registration. 
* 
* @param array $data 
* @return User 
*/ 
protected function create(array $data) 
{ 
    return User::create([ 
     'firstname'  => $data['firstname'], 
     'lastname'  => $data['lastname'], 
     'login'   => $data['login'], 
     'organization_id' => $data['organization'], 
     'team_id'   => $data['team'], 
     'password'  => bcrypt($data['password']), 
    ]); 
} 

我不会发表我的看法代码,我的投入是正确的。

我的问题是,我只能保存一个新的用户。

发生了什么事是:

  1. 用户表是空的
  2. 我填满我的表单,然后提交它来创建我的第一个用户
  3. 它的工作原理(耶),我正确重定向到我的主页

  4. 我想创建第二个用户

  5. 新用户不存储在我的表
  6. 我重定向到主页然而

如果我在我的表中删除我的用户入口(所以这意味着我清空表),那么我可以再次创建一个新用户。但我总是只有一个条目。我无法添加更多。

Route::get('/lol', function() { 
    return User::create([ 
     'firstname'  => 'what', 
     'lastname'  => 'the', 
     'login'   => 'f***', 
     'organization_id' => 1, 
     'team_id'   => 4, 
     'password'  => 'blabla', 
    ]); 
}); 

,当然,它的工作原理是,每次我打电话的路线魅力/笑

那么什么是地狱:

只是出于好奇,我在我的路线文件试过这种打算在这AuthController?我疯了吗?

+0

从控制器方法创建第二个用户时,你得到什么错误? – Qazi

回答

0

好了,问题是我注册后Laravel自动登录-.-用户(这是相当不错的,但实际上我不知道它)。所以现在我的问题解决了。

我回到了Laravel 5.1(我在5.2以下),认证和注册系统在我看来处理得更好。