Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Laravel Framework v5.4.33
PHP Version 7.1.6
Операционная система и её версия: linux centos
Добрый день.
Установил стандартную авторизацию из коробки. Всё работает хорошо, но возникла потребность выводить ошибки валидации без перезагрузки страницы. Понимаю, что необходимо использовать Ajax. C Ajax немного знаком, также имеется опыт работы с ним в Laravel, но как его использовать в авторизации и регистрации, пока не знаю. Помогите, пож-та, в решении данного вопроса. Буду рад любой помощи.
Заранее спасибо.
Не в сети
Способов много, можешь посмотреть на пример, чтобы понять как это работает.
Не в сети
Спасибо за оперативный ответ.
Данную статью уже читал. Там рассказывается, если создавать свою форму, это я уже умею))).
У меня немного другая проблема, как сделать тоже самое только с системой авторизации/регистрации, которая поставляется в Laravel с коробки.
Исходя из примера, не понятно где сформировать данный json
и в каком виде вывести его сюда
Не в сети
В стандартной аутентификации Laravel такая же простая форма, как и в примере, поэтому можешь смело следовать туториалу.
Не в сети
Дак вот же
https://yadi.sk/i/uxps8Dwq3PayKd
не? разве в 5.4 этого нет??
там вродеб как должно быть:
метод регистрации
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
$this->guard()->login($user);
return $this->registered($request, $user)
?: redirect($this->redirectPath());
}
если посмотреть в $this->validator, то:
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
// даже по указанной таблице проверяет уникальность почты и гоняет по маскам email
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
]);
}
сама вьюха. скопировал саму суть
<div class="panel panel-default">
<div class="panel-heading">Register</div>
<div class="panel-body">
<form class="form-horizontal" method="POST" action="{{ route('register') }}">
{{ csrf_field() }}
<div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
<label for="name" class="col-md-4 control-label">Name</label>
<div class="col-md-6">
<input id="name" type="text" class="form-control" name="name" value="{{ old('name') }}" required autofocus>
@if ($errors->has('name'))
<span class="help-block">
<strong>{{ $errors->first('name') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors->has('login') ? ' has-error' : '' }}">
<label for="login" class="col-md-4 control-label">Login</label>
<div class="col-md-6">
<input id="login" type="text" class="form-control" name="login" value="{{ old('login') }}" required autofocus>
@if ($errors->has('login'))
<span class="help-block">
<strong>{{ $errors->first('login') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
<label for="email" class="col-md-4 control-label">E-Mail Address</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}" required>
@if ($errors->has('email'))
<span class="help-block">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
<label for="password" class="col-md-4 control-label">Password</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control" name="password" required>
@if ($errors->has('password'))
<span class="help-block">
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<label for="password-confirm" class="col-md-4 control-label">Confirm Password</label>
<div class="col-md-6">
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Register
</button>
</div>
</div>
</form>
</div>
</div>
Изменено sam (10.11.2017 18:54:23)
Не в сети
Лично я раньше делал чтото типа таво )))) (код по идее рабочий, мой, в своих черновиках нашел, но не проверял)
{{ Form::submit('Отправить', ['class' => 'btn btn-primary', 'onclick'=>'AjaxCreateValid()']) }}
function AjaxCreateValid()
{
var name = $("#name").val();
var family = $("#family").val();
var phone = $("#phone").val();
var email = $("#email").val();
var reason = $("#reason").val();
if (name && family && phone && email && reason && test_email == true) {
$('#succs_valid_created_email').show().delay(5000).fadeOut(); // Сообщение что запись создана, но сабмит перебивает.
} else {
if (!name) {
$('#error_valid_created_name').show().delay(5000).fadeOut();
return null;
}
if (!family) {
$('#error_valid_created_family').show().delay(5000).fadeOut();
return null;
}
if (!phone) {
$('#error_valid_created_phone').show().delay(5000).fadeOut();
return null;
}
if (!email) {
$('#error_valid_created_email_empty').show().delay(5000).fadeOut();
return null;
}else {
// если поле почты заполнено, проверяем ее валидность
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
var test_email = regex.test(email);
if (test_email == false){
$('#error_valid_created_email').show().delay(5000).fadeOut();
return null;
}
}
if (!reason) {
$('#error_valid_created_reason').show().delay(5000).fadeOut();
return null;
}
return false;
}
return true;
}
<div id="succs_valid_created_email" class="alert alert-success" hidden="true" align="center">
Запись добавлена
</div>
<div id="error_valid_created_name" class="alert alert-danger" hidden="true" align="center">
Укажите своё Имя
</div>
<div id="error_valid_created_family" class="alert alert-danger" hidden="true" align="center">
Укажите свою Фамилию
</div>
<div id="error_valid_created_phone" class="alert alert-danger" hidden="true" align="center">
Укажите свой телефон
</div>
<div id="error_valid_created_email_empty" class="alert alert-danger" hidden="true" align="center">
Укажите свой электронный почтовый адрес
</div>
<div id="error_valid_created_email" class="alert alert-danger" hidden="true" align="center">
Формат почты указан не верно
</div>
<div id="error_valid_created_reason" class="alert alert-danger" hidden="true" align="center">
Укажите причину обращения
</div>
Не в сети
Спасибо.
Обязательно попробую и отпишусь.
Не в сети
Страницы 1