【发布时间】:2018-03-14 00:07:49
【问题描述】:
我有一个路由,例如/posts/6,我想在这个路由上创建一个按钮,它将我重定向回下一级的url路径,在这种情况下,指向/posts/。我没有在 BLADE 中找到 Request 或 Route 类的方法,可以解决这个问题。
【问题讨论】:
我有一个路由,例如/posts/6,我想在这个路由上创建一个按钮,它将我重定向回下一级的url路径,在这种情况下,指向/posts/。我没有在 BLADE 中找到 Request 或 Route 类的方法,可以解决这个问题。
【问题讨论】:
你试过了吗:
<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 部分,但这很难看。不管怎样,谢谢你的回答。
URL::previous() 路由的按钮,在第二页使用{{route('posts.index')}}。
你应该试试这个:
<a href="{{ url()->previous() }}" class="btn btn-danger btn-xs">Back</a>
【讨论】:
/manage/posts,那里有一个后退按钮,和你说的完全一样,接下来,我的所有帖子都在同一页面上,所以如果我现在要去/manage/posts/6,这里我有第二个返回按钮,如果我点击它,它会返回到/manage/posts/,但是如果我现在点击第一个返回按钮,它会返回/manage/posts/6 而不是@987654326 @。所以,它进入一个无限循环:)。这就是为什么我试图找到从path中删除一个级别的解决方案
有很多方法可以做到这一点。但这取决于你想要的。
1) 。第一种笨方法是使用静态路由<a href="{{ route('posts')}}>Back</a>。
虽然我相信如果我们谈论一个具体的案例是一个好方法
2)如果你一直有resource/resourceId 这样的模式,你可以获取当前的 url 并删除最后一部分(通过 explode() 或任何其他函数)。
例子
<a href="{{ returnMyResourceRouteName(url()->current() ) }}>Back</a>.
returnMyResourceRouteName() 获取当前网址,removes 获取id
【讨论】: