Laravel |使用Redirect :: route和Redirect :: back()时如何将参数附加到URL?

时间:2017-05-07 11:05:43

标签: laravel redirect query-string laravel-5.4

我的视图提供了http://finance.dev/home/customer/6#tab_1_3之类的链接,以便用户a可以使用链接直接导航到页面中的标签页。

在我的路线中,我有:

    Route::get('/home/customer/{id}',[
        'as' => 'home.customer',
        'uses' => 'CustomerController@show'
    ]);

    Route::get('/home/customer/{id}/{navigate}/{tab}',[
        'as' => 'home.customer.navigate',
        'uses' => 'CustomerController@navigate'
    ]);

我正在使用以下路线传递所需的变量:

window.location.href = '/home/customer/'+id+'/'+navigate+'/'+tab;

我的控制器逻辑是:

public function navigate($id, $navigate, $tab)
    {
        $user = customer::find($id);


        if($navigate == 'previous')
        {    
            // get previous user id
            $go = customer::where('id', '<', $user->id)->max('id');
        }
        elseif ($navigate == 'next') {
           // get next user id
            $go = customer::where('id', '>', $user->id)->min('id');
        }
        else{

            return \Redirect::back();
        }
        return \Redirect::route('home.customer', array('id' => $go));


    }

以上代码成功返回http://finance.dev/home/customer/6

之类的网址

现在我想弄清楚如何定义\Redirect::route\Redirect::back()来返回http://finance.dev/home/customer/6#tab_1_3

这样的网址

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

$url = URL::route('home.customer', ['id' => $go])."#tab_1_6";

return \Redirect::to($url);

参考Link