2016-11-17 53 views
3

我有一些传统的网址与我想要重定向到没有这些参数的路线参数。重定向到路线没有得到参数与Laravel

在我web.php我:

Route::get('/', ['as' => 'welcome', 'uses' => '[email protected]']); 

网址像http://example.com/?page_id=5应该重定向(302)到http://example.com/

在控制器我尝试了以下内容:

public function welcome(Request $request) 
{ 
    if($request->has('page_id')) { 

     redirect()->to('welcome', 302); 
    } 

    return view('welcome'); 
} 

它达到了重定向,但该网址仍具有PAGE_ID = 5呢?。例如:

redirect()->to('welcome', 302)->with('page_id', null); 

没有什么区别。在Laravel 5.3之后,用参数重定向页面的最佳方式是什么?到一个没有参数?

回答

4

您应该使用returnredirect()方法的前面,使其工作:

public function welcome(Request $request) 
{ 
    if($request->has('page_id')) { 

     return redirect()->route('welcome'); 
    } 

    return view('welcome'); 
} 

希望这有助于!

+0

是它!这很有道理;) – Roderik

+0

@Roderik - 如果你发现这个答案是正确的和有帮助的,那么接受&upvote这个答案,因为它激励我回答这样的其他问题,并帮助他人快速找到正确的答案! –

+0

我没有被允许立即接受,它有一个延迟(概率与声誉挂钩)。 – Roderik

0

接受的答案不适用于我。

使用$request->path()也不过:

public function welcome(Request $request) 
{ 
    if($request->has('page_id')) { 

     return redirect()->to($request->path()); 
    } 

    return view('welcome'); 
} 
+0

您是否定义了命名路线('as'=> ...)或 - > name()? – Roderik

+0

我正在使用'as',就像您在原始问题中一样。 – mikeybeck