2016-10-30 3 views
0

私は展開フィールド:AUTH</p> <p>自動生成された登録フォームは、次のフィールド提供: 名前、電子メール、およびパスワードを認証

PHPの職人のメイクを使用してLaravelの認証コードを生成しています。

名前の代わりに名前、姓を追加しようとしています。私は正常にフィールドとDBテーブルとフォーム(ビュー)を作成しました。ユーザーをテストして登録すると、パスワードと電子メールのフィールドは保存されますが、名と姓は保存されません。

私の推測では、変更していないファイルがありません。

データベースに書き込まれるフィールドは、どのページで定義されていますか?

これはauthcontrollerの私のバリデータと認証コードです:

/** 
* 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, [ 
     'first_name' => 'required|max:255', 
     'last_name' => 'required|max:255', 
     'email' => 'required|email|max:255|unique:users', 
     'password' => 'required|min:8|confirmed', 
    ]); 
} 

/** 
* Create a new user instance after a valid registration. 
* 
* @param array $data 
* @return User 
*/ 

protected function create(array $data) 
{ 
    return User::create([ 
     'first_name' => $data['first_name'], 
     'last_name' => $data['last_name'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
    ]); 
} 

私はそれを保存しないコントローラとデータベーステーブル上の「名前」に「FIRST_NAME」を変更した場合。バリデーターはうまくいきます。

答えて

0

AuthControllerあなたはapp/Http/Controllers/Authにする必要があります。

firstnamelastnameのフィールドを含めるには、validator()create()のメソッドを変更する必要があります。

希望すると便利です。私が行方不明になった

+0

ありがとうございます。私はすでにそれらの変更を加えました。フィールドはデータベースに存在しますが、保存されません。コントローラとデータベースの両方でfirst_nameをnameに変更すると、保存されます。 –

0

変更は、user.phpファイルにあった:

<?php 
namespace App; 
use Illuminate\Foundation\Auth\User as Authenticatable; 
class User extends Authenticatable 
{ 
    /** 
    * The attributes that are mass assignable. 
    * 
    * @var array 
    */ 
    protected $fillable = [ 
    'first_name', 'last_name', 'email', 'password', 
    ]; 

    /** 
    * The attributes that should be hidden for arrays. 
    * 
    * @var array 
    */ 
    protected $hidden = [ 
     'password', 'remember_token', 
    ]; 
} 

私は必要な追加されたフィールドを保護$の充填可能として含まれます。私はその変更を行い、すべてが機能しています。

関連する問題