2017-12-02 7 views
0

私はLaravel 5.5を使用しています。私は新しく登録したユーザーに電子メールアドレスを確認してアカウントを有効にします。また、既存のLaravel Userモデルにいくつかのフィールドや名前の変更が必要です。 namefirst_namelast_nameで置き換えられます。Laravel 5.5電子メールの確認とモデル調整

私はLaravelはAuth/RegisterControllerに登録の大部分を管理していることがわかったので、私は私が必要なものを修正:

protected function validator(array $data) 
{ 
    return Validator::make($data, [ 
     'name' => 'required|string|max:255', 
     'email' => 'required|string|email|max:255|unique:users', 
     'password' => 'required|string|min:12', 
     'first_name' => 'required|string|min:2', 
     'last_name' => 'required|string|min:2', 
     'terms' => 'accepted' 
    ]); 
} 

私はfirst_namemin:nを変更した場合、バリデータは、正常に動作し、それが正しく、その後、検証されますユーザーに[検証エラー]が表示されます。

protected function create(array $data) 
{ 
    $user = User::create([ 
     'first_name' => $data['first_name'], 
     'last_name' => $data['last_name'], 
     'email' => $data['email'], 
     'status' => 'inactive', 
     'password' => bcrypt($data['password']), 
     'api_token' => static::generateApiKey(), 
    ]); 

    $activationLink = route('account.activation', static::generateRandomString()); 
    Mail::to($user)->send(new UserAccountConfirmationMail($user, $data['password'], $activationLink)); 
    return $user; 
} 

ただし、作成(create(array $data))はまったく機能しません。私はコードが実行されていないような気がします(登録するときには、ddまたはLog::info('...')を追加しようとしました)、本当に何も起こりません。ページは更新されましたが、ユーザーの作成に関するメッセージは表示されません(成功した場合でもそうでない場合も...)。

私はここでいくつかの重要な詳細を見逃していますか?

+0

あなたは偶然に何かを変更しましたか? –

+0

変更内容を反映するためにユーザーdbスキームを更新したとしますか? –

+0

あなたはその 'create'メソッドに何かを追加する必要はありません。その"唯一の "目的は、与えられたデータからユーザーを作成することです...ユーザーが現代に登録するときに起動される' Registered'イベントがありますLaravel – lagbox

答えて

1

これらの日のうち、エラーを特定するのに何時間も費やされているのは、ちょうど終了しました。 validatorのうち、通常はエラーを表示していたので、大丈夫だと思いましたが、これがターニングポイントです。私はnameを検証から削除するのを忘れていました。しかし、私が本当に必要としていたこれらのエラーだけを表示したので、この検証エラーは私には一度も表示されませんでした。

ソリューション:

return Validator::make($data, [ 
    'email' => 'required|string|email|max:255|unique:users', 
    'password' => 'required|string|min:12', 
    'first_name' => 'required|string|min:2', 
    'last_name' => 'required|string|min:2', 
    'terms' => 'accepted' 
]); 
関連する問題