Laravel редирект с данными формы

D
На сайте с 28.06.2008
Offline
1101
168

Учу лару, такое задание - " Спросите у пользователя email с помощью формы. Если этот email корректный, то выполните редирект на другое действие и выведите в представлении этого действия переданный email и сообщение о том, что он корректен."

роут

Route::match(['get', 'post'], '/test', 'TestController@form');

контроллер

<?php
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class TestController extends Controller
{
    public function form(Request $request)
    {
        if($request->isMethod('post')){
            if(preg_match('~@~m', $request->input('email'), $match)){
                return redirect('/test/result')->withInput();
            }
           else{
               return view('test.form', ['error'=>'email не корректный!']);
           }
        }
        if($request->isMethod('get')){
            return view('test.form');
        }

    }
}

представление по адресу /test/result

{{ $request->input('email') }}

В итоге редирект на белую страницу, ни ошибок ни данных.

В чем ошибка?

E
На сайте с 01.10.2017
Offline
94
#1

Данные-то в сессии сохраняете, поэтому используйте session('email') или null-безопасный old('email').

Подобные ошибки в общем-то тоже положено обрабатывать путем перенаправления. Вот только текст сообщения можно не передавать в сессии, а передавать его ключ/номер в адресе.

Домены на продажу: https://p20.ru/collection/domains-for-sale
D
На сайте с 28.06.2008
Offline
1101
#2
В условиях задачи про сессию ни слова, хочу просто понять где я ошибаюсь, почему данные с формы не приходят при редиректе с 
->withInput()
E
На сайте с 01.10.2017
Offline
94
#3
Начните с основ: протокол HTTP, работа с документацией.
W1
На сайте с 22.01.2021
Offline
283
#4
Dram #:
хочу просто понять где я ошибаюсь

Для этого прежде всего надо, чтобы страница, на которую происходит редирект, была в любом случае непустой. Иначе непонятно, почему " В итоге редирект на белую страницу" - то ли данные не передались, то ли ошибка произошла. То есть даже при отсутствии данных должен показываться какой-нибудь текст. Причём по возможности даже два текста: один - независимо от наличия переданных данных, другой - при наличии переданных данных, даже пустой строки.

Мой форум - https://webinfo.guru –Там я всегда на связи

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий