【问题标题】:How to retrieve URL path one level below in Laravel?如何在 Laravel 中检索低于一级的 URL 路径?
【发布时间】:2018-03-14 00:07:49
【问题描述】:

我有一个路由,例如/posts/6,我想在这个路由上创建一个按钮,它将我重定向回下一级的url路径,在这种情况下,指向/posts/。我没有在 BLADE 中找到 RequestRoute 类的方法,可以解决这个问题。

【问题讨论】:

    标签: laravel routing


    【解决方案1】:

    你试过了吗:

    <a href="{{ url("/posts/") }}" class="btn btn-danger btn-xs">Back</a>
    

    或者如果你想让它参数化

    <a href="{{ url($param) }}" class="btn btn-danger btn-xs">Back</a>
    

    编辑

    或更多通用

    @php
       //get the full url
       $url = url()->full();
       //get the position of the last "/"
       $pos = strrpos($url,"/");
       //cut the string from 0 to the correct position
       $newUrl = substr($url,0,$pos); 
    @endphp
    
    <a href="{{ $newUrl }}" class="btn btn-danger btn-xs">Back</a>
    

    【讨论】:

    • 是的,这似乎很简单,按钮中有“硬编码”的路线,这就是为什么我试图找到一种动态的方法。一个可能的解决方案可能是检索Route::path(),然后在/ 上使用PHP explode 删除最后一个url 部分,但这很难看。不管怎样,谢谢你的回答。
    • @priMo-ex3m,我已经用一个通用案例更新了我的答案
    • 是的,它看起来与我可能的解决方案相似,但这有点难看。所以,我将在第一页使用带有URL::previous() 路由的按钮,在第二页使用{{route('posts.index')}}
    • 它看起来适合您的目的。如果您在不同的布局中需要它,您可以创建一个“部分”布局并包含它。例如@include("back.button") 或类似的东西。
    【解决方案2】:

    你应该试试这个:

    <a href="{{ url()->previous() }}" class="btn btn-danger btn-xs">Back</a>
    

    【讨论】:

    • 感谢您的建议,我知道这种方法,但对于我的情况来说还不够。例如,我有一个仪表板,我要去/manage/posts,那里有一个后退按钮,和你说的完全一样,接下来,我的所有帖子都在同一页面上,所以如果我现在要去/manage/posts/6,这里我有第二个返回按钮,如果我点击它,它会返回到/manage/posts/,但是如果我现在点击第一个返回按钮,它会返回/manage/posts/6 而不是@987654326 @。所以,它进入一个无限循环:)。这就是为什么我试图找到从path中删除一个级别的解决方案
    【解决方案3】:

    有很多方法可以做到这一点。但这取决于你想要的。

    1) 。第一种笨方法是使用静态路由&lt;a href="{{ route('posts')}}&gt;Back&lt;/a&gt;
    虽然我相信如果我们谈论一个具体的案例是一个好方法

    2)如果你一直有resource/resourceId 这样的模式,你可以获取当前的 url 并删除最后一部分(通过 explode() 或任何其他函数)。

    例子

    &lt;a href="{{ returnMyResourceRouteName(url()-&gt;current() ) }}&gt;Back&lt;/a&gt;.

    returnMyResourceRouteName() 获取当前网址,removes 获取id

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多