重定向并在 laravel 中发送数据

Redirecting with sending Datas in laravel

我尝试了以下代码:如果用户的登录信息不正确,则使用消息再次将用户重定向到 loin 页面:

if (!$info_is_correct){
    $_SESSION['err_msg'] = 'your login info is not correct';
    return redirect('http://localhost:8000/user/login');
}

这就是我在登录页面(视图)中为回显错误消息所做的工作:

    @isset($_SESSION['err_msg'])
        <div class="alert alert-danger mt-2" style="font-family:IRANSans;font-size:16px ;">
            <p>
                <strong>خطا !</strong>
                {{$_SESSION['err_msg']}}
                <?php unset($_SESSION['err_msg']) ?>

            </p>
        </div>
    @endisset

问题出在哪里?以及发送数据以通过重定向查看的最佳方式是什么?

使用with()方法:

return redirect('http://localhost:8000/user/login')->with('err_msg', 'your login info is not correct');

如果一个视图:

@if (session('err_msg'))
    <div>{{ session('err_msg') }}</div>
@endif

由于您使用的是 laravel,因此可以通过使用 validators 和 return

来完成验证

redirect()->back()->withErrors($validator)

并且从视图中您可以访问一个 $errors 变量,它将保存所有错误,

你可以遍历错误变量并打印出错误

从您的登录视图

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

您可以像这样使用输入发送错误消息

return redirect('http://localhost:8000/user/login')->with('err_msg', 'Your error message')->withInput();

来源:Laravel Redirects, Laravel Validate

注意:您还可以使用错误消息 like this

使用session方法在laravel中设置session值,一定要使用,因为它是全局的,并且为整个站点设置session值。

同时 删除 http://localhost:8000 以在开发和生产中使用这条路线。

if (!$info_is_correct){
    session('err_msg', 'your login info is not correct');
    return redirect('/user/login');
}

并从会话中获取值作为 session('key')

{{session('err_msg')}}