Laravel 5.2。* redirect-> back->不起作用

时间:2016-01-25 20:01:50

标签: php laravel redirect parameters

我想将一些数据写入我的数据库,如果查询失败,我想显示错误。 我尝试了以下方法:

<div style="margin:auto;text-align:center;padding-top:10px;">
    <form action="" method="POST">
        <p style="text-align:center;">
        <select id="myselect">
            <option value="blogs">blogs.php</option>
            <option value="portfolio">portfolio.php</option>
            <option value="contact">contact.php</option>
            <option value="home">home.php</option>
        </select>
        </p>
        <p style="text-align:center;">
            <input type="submit" name="submit" onclick="myFunction()" value="Submit"/>
        </p>
    </form>
</div>
<div class="pagetitle">
    <h5>Option Value (for example blogs)</h5>
</div>
<script>
function myFunction() {
    var x = document.getElementById("myselect").selectedIndex;
    var _value = document.getElementsByTagName("option")[x].value;
    document.getElementsByTagName('h5')[0].innerText = _value
}
</script>

重定向效果很好,但我无法在$ data

中读出响应

我的刀锋:

return redirect()->back()->with('data', ['Database Error!']);

但这两种方法都不起作用,我阅读了很多L5.2文档,但没有任何作用。

我是否需要修改会话配置?!? 或者问题是什么?

2 个答案:

答案 0 :(得分:2)

return back()->with('data', ['Database Error!']);

back()将带您进入上一页,其中包含一个包含“数据库错误!”的数据变量。

答案 1 :(得分:1)

这是5.2升级的一个突破性问题。发生的事情是中间件负责显示所有视图中的Session消息未被利用,因为它已从全局中间件移至web中间件组。

有两种方法可以解决这个问题:

  1. kernel.php文件(app / Http / Kernel.php)中,您可以将middleware \Illuminate\View\Middleware\ShareErrorsFromSession::class移回protected $middleware属性。
  2. 使用路由组包裹所有web路由,并将Web中间件应用于它们:

    Route::group(['middleware' => 'web'], function() {
        // Place all your web routes here...(Cut all `Route` which are define in `Route file`, paste here) 
    });