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:8', 'confirmed' ],
// Проверка приглашения
'invite_token' => [
'required', 'string', 'max:32',
function ($data, $fail) {
$token = Invite::where('invite_token', $data['invaite_token'])->first();
if (!$token) {
$fail('Приглашение не существует');
}
},
]
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data invaite_token
* @return \App\User
*/
protected function create(array $data)
{
$this->validator($data)->validate();
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'invaite_token' => $data['invaite_token'],
'password' => Hash::make($data['password']),
]);
}
/**
* 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, [
// Проверка всех других полей формы
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed' ],
// Проверка приглашения
'invite_token' => [
'required', 'string', 'invaite_token', 'max:32', 'unique',
function ($data, $fail) {
$token = Invaite::firstOrFail();
if ($this->invaite_token == $token->invaite_token) {
$fail('Приглашение не существует');
}
},
]
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data invaite_token
* @return \App\User
*/
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'invaite_token' => $data['invaite_token'],
'password' => Hash::make($data['password']),
]);
}
<script src="{{ asset('public/js/jquery-3.5.1.min.js') }}"></script>
<script type="text/javascript">
$( document ).ready(function() {
$('#commentCreate').on('submit', function(event) {
event.preventDefault();
let formData = new FormData(this);
$.ajax({
url: 'api/store',
type: "POST",
data: formData,
dataType: 'json',
cache: false,
contentType: false,
processData: false,
success: function(data){
$('.alert-warning').html(data);
//$(this).parent('<div class="col-md-12" style="margin-top:20px;" ><div class="card"><div class="card-header">+data.name+</div><div class="card-body">+data.comment+</div></div></div>');
//console.log(data);
}
});
});
});
</script>
мне кажется это достижимо только одним путем - один роут и один же контроллер ему, а уже в контроллере вы будете брать значение alias и определять что делать дальше.