如何使用laravel寄存器验证器返回错误



我是laravel的初学者。

<?php
namespace AppHttpControllersAuth;
use ..
use IlluminateSupportFacadesValidator;

class RegisterController extends Controller
{
use RegistersUsers;
protected $redirectTo = '/popin/create_adresse';
public function __construct()
{
$this->middleware('guest');
}
protected function validator(array $data)
{
return Validator::make($data, [
'email' => ['required', 'string', 'email', 'max:255', 'unique:customer'],
'password' => ['required', 'string', 'min:8'],
]);
}
protected function create(array $data)
{
$this->validator($data);
return Customer::create([
'firstname' => $data['firstname'],
'lastname' => $data['lastname'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
}

在我的路由器中,我有"路线::get('登录','PopinController@Login'(;路线::post('注册','PopinController@PostRegister'(;">

当我放入一些有效数据时,它就起作用了!但如果我把一封已经存储在数据库中的电子邮件放进去,它会返回这个示例The given data was invalid.

如何创建自定义错误消息,如"此电子邮件已被其他用户使用!"。

我不明白。谢谢你的帮助。

要检索错误,请使用以下方法:

protected function validator(array $data)
{
$validator = Validator::make($data, [
'email' => ['required', 'string', 'email', 'max:255', 'unique:customer'],
'password' => ['required', 'string', 'min:8'],
]);
if ($validator->fails()) {
return $validator->errors();
} else {
return [];
}
}
protected function create(array $data)
{
$errors = $this->validator($data);
...

它将返回您需要的列表或错误

最新更新