Laravel redirect-> back()返回空参数

时间:2016-05-05 21:06:53

标签: php laravel laravel-5.2

我有一个 index.blade.php 页面,我有一个显示提醒成功或错误的代码:

    <!-- ALERTS -->
    @if (isset($msg))
        @if ($msg_type == 'error')
            <div id="alert" class="alert alert-danger" role="alert">{{ $msg }}</div>
        @else
            <div id="alert" class="alert alert-success" role="alert">{{ $msg }}</div>
        @endif
        <script>setTimeout("document.getElementById('mensajecarrito').style.display='none'",6000);</script>
    @endif
    <!-- //ALERTS -->

这个索引有一个表单,这个表单url POST到post_designs url,这是他的控制器方法:

public function postDesign() {

        if (Session::has('FUNCTION'))
                $function = Session::get('FUNCTION');

            if (Input::has('FUNCTION'))
                $function = Input::get('FUNCTION'); 

            if (isset($function))
            {           
                switch($function)
                {
                    case 'createDesign':   

                        try
                        {   
                            //do something good
                            $msg_type = 'success';                      
                            $msg = 'Design created successfully';     
                        }
                        catch(FotiApiException $e)
                        {
                            $msg_type = 'error';                    
                            $msg = 'Unexpected error';       
                        }

                    break;
                }                           
            }



        return back()->with(array('msg' => $msg, 'msg_type' => $msg_type));
    }

问题是,当返回我的index.blade.php时,$ msg和$ msg_type变量为空......

我不明白,我的项目是Laravel 5.2.3并且我有正确的路由中间件:

Route::group(['middleware' =>[ 'web']], function () {

    # Index
    Route::get('/',['as'=> 'index','uses' => 'WebController@getIndex']);

    // # POSTS
    Route::post('/post-design', ['as' => 'post_design', 'uses' => 'WebController@postDesign']);

});

4 个答案:

答案 0 :(得分:1)

如果您想发送一些额外的GET参数,请按照以下步骤进行操作。

$previousUrl = app('url')->previous();

return redirect()->to($previousUrl.'?'. http_build_query(['varName'=>'varValue']));

它将重定向 yoururl?varName = varValue ,希望它有所帮助!!

答案 1 :(得分:0)

我是laravel 5.2的新手,关于没有必要路线的路线

.\sqlexpress

场景laravel 5.2中的所有路线都在其中,因此请尝试将其删除

并返回带有2个值的视图尝试使其像:

['middleware' =>[ 'web']]

我希望能解决问题:)

答案 2 :(得分:0)

而不是使用

return back()->with('msg', $msg)->with('msg_type', $msg_type);

使用

return back()->withInput(['msg' => $msg, 'msg_type' => $msg_type]);

答案 3 :(得分:0)

您可以使用withInput()

return back()->withInput(array('msg' => $msg, 'msg_type' => $msg_type));

会话中保存的数据 如果要使用刀片中的数据。 尝试使用old('msg')或old('msg_type')

@if(old('msg'))
<p>msg:{{ old('msg') }}<p>
@endif

php

$msg = $request->old('msg');

laravel requests old-input