2016-11-19 88 views
5

我试图在Laravel 5.1中找到以前的路线名称。 有了:Laravel之前的路线名称5.1-5.5

{!! URL::previous() !!} 

我得到的路线网址,但我试图让路由名称就像我获得当前页面:

{!! Route::current()->getName() !!} 

我的客户不会为不同的文字谢谢页,取决于页面(注册页面联系页面)用户转到谢谢页面。我尝试使用:

{!! Route::previous()->getName() !!} 

但那并没有奏效。我试图让这样的:

@if(previous-route == 'contact') 
    some text 
@else 
    other text 
@endif 

回答

8

这里有什么对我有用。我找到了这个答案和这个问题,并修改它在我的情况下工作:https://stackoverflow.com/a/36476224/2807381

@if(app('router')->getRoutes()->match(app('request')->create(URL::previous()))->getName() == 'public.contact') 
    Some text 
@endif 
+1

谢谢。这也适用于Laravel 5.4。 – racl101

+1

不错!这也适用于Larave 4.2。谢谢。 – Deivide

+3

就像一列火车。但是,这也适用于Laravel 5.5 .. –

3

你不能得到前一页的路径名,所以你的选择是:

  1. 检查前面的网址,而不是一个路径名。使用sessions。首先,保存路由名称:

    session()->flash('previous-route', Route::current()->getName()); 
    

然后检查会话具有previous-route

@if (session()->has(`previous-route`) && session(`previous-route`) == 'contacts') 
    Display something 
@endif 
  • 使用GET参数传递路线名称。
  • 如果我是你,我会使用会话或检查以前的URL。