如何在没有标准身份验证的情况下使用laravel注册控制器(php artisan make:auth)



我以为if($this->validator($request->all()))这会返回真或假,但它每次返回真都返回一个对象

use RegistersUsers;
protected $redirectTo = '/home';
public function __construct()
{
$this->middleware('guest');
}

protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'surname' => 'required|string|max:255',
'age' => 'required|integer|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
]);
}

protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'surname' => $data['surname'],
'age' => $data['age'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
public function register(Request $request){
if($this->validator($request->all())){
//create user
// function after registration
var_dump('success');
}else{
//redirect to ...
var_dump('fail');
}
}

这里有几个选项:

使用validate()

public function register(Request $request)
{
$this->validator($request->all())->validate();
dd('success'); //This won't get called if validation doesn't pass
}

使用上述方法,Laravel将为您处理响应。


或者,如果要更好地控制处理验证的方式,则可以改用passes()方法:

public function register(Request $request)
{
if ($this->validator($request->all())->passes()) {
dd('success');
} else  {
dd('fail');       
}
}

手动创建验证程序

最新更新