Как мне вернуть пользователя на предыдущий URL с ошибками и добавить тег привязки?

Этот код делает все, что мне нужно

return back()->withInput()->withErrors($validator->errors());

Принять добавьте тег привязки, т. Е. (Www.examplewebsite.com/home#anchor).

Этот код делает все, что мне нужно

return Redirect::to(URL::previous() . "#contact");

Принять передать ошибки от моего валидатора.

Вот код целиком для контекста

public function contact(Request $request) {

$input = $request->input();
$email = $input['email'];
$name = $input['name'];

$validator = Validator::make(
array(
'name' => $name,
'email' => $email,
'text' => $input['text']
),
array(
'name' => 'required|min:5',
'email' => 'required|email',
'text' => 'required|min:5'
)
);

if($validator->fails()) {

return back()->withInput()->withErrors($validator->errors());

} else {

Mail::send('emails.contact', $input, function($message) use ($email, $name) {
$message->from('auto@email.com', 'Auto');
$message->to('example@email.com', 'Mong Goose')->subject('A Contact Form');
});

return Redirect::to(URL::previous() . "#contact");
}
}

Как можно добиться следующего в одном редиректе:

  • отправить пользователя на предыдущий URL

  • добавить привязку к предыдущему URL

  • отправить ошибки

0

Решение

Вы пытались использовать перенаправление назад?

return Redirect::back()->withErrors(['error', 'Error Message']);

Чтобы получить сообщение об ошибке, вы можете использовать:

Session::has('error')

шаблон лезвия

@if (count($errors))
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector