【发布时间】:2018-05-16 18:15:12
【问题描述】:
我正在关注 laravel 5.5 关于覆盖 RegisterController 中的 REGISTER 方法的教程,但我收到错误消息“[App\Http\Controllers\Auth\RegisterController] 上不存在方法 [throwValidationException]”,而不是确定为什么?
<?php
/**
* Over-ridden the register method from the "RegistersUsers" trait
* Remember to take care while upgrading laravel
*/
public function register(Request $request)
{
// Laravel validation
$validator = $this->validator($request->all());
if ($validator->fails())
{
$this->throwValidationException($request, $validator);
}
// Using database transactions is useful here because stuff happening is actually a transaction
// I don't know what I said in the last line! Weird!
DB::beginTransaction();
try
{
$user = $this->create($request->all());
// After creating the user send an email with the random token generated in the create method above
$email = new EmailVerification(new User(['email_token' => $user->email_token, 'name' => $user->name]));
Mail::to($user->email)->send($email);
DB::commit();
return back();
}
catch(Exception $e)
{
DB::rollback();
return back();
}
}
?>
【问题讨论】:
-
添加使用ValidatesRequests;特质
-
由于某种原因仍然出现同样的错误。
-
你是否在安装其他版本的同时跟随 laravel 5.3 讲座? Prolly,您不想向用户抛出异常,而是想显示异常,因此请执行以下操作: if($validator->fails() return redirect('post/create') ->withErrors($validator) ->withInput( );)
-
这不是 Laravel 5.5 的教程......因为该方法不再存在。除非您了解版本之间的所有差异,否则您不能遵循使用不同版本 Laravel 的教程,否则您会遇到这样的问题。
-
我不太确定你为什么要覆盖这个方法,因为没有必要......注册后会触发一个
Registered事件,你可以收听......这就是成功注册后需要运行的任何代码都应该去
标签: laravel