如何动态获取当前网址的最后一部分没有'/'?
e.g:
www.news.com/foo/bar
得到 - >杆
www.news.com/foo/bar/fun
得到 - >有趣的
在当前视图中放置函数或如何实现它的位置?
答案 0 :(得分:26)
当然总有Laravel方式:
request()->segment(count(request()->segments()))
答案 1 :(得分:9)
我就这样做了:
{{ collect(request()->segments())->last() }}
答案 2 :(得分:8)
Route object是您想要的信息来源。有几种方法可以获取信息,其中大部分都涉及将一些内容传递给您的视图。我强烈建议不要在刀片中完成工作,因为这是控制器操作的目的。
将值传递给刀片
最简单的方法是将路径的最后一部分作为参数并将该值传递给视图。
// app/Http/routes.php
Route::get('/test/{uri_tail}', function ($uri_tail) {
return view('example')->with('uri_tail', $uri_tail);
});
// resources/views/example.blade.php
The last part of the route URI is <b>{{ $uri_tail }}</b>.
避免路线参数需要多做一些工作。
// app/Http/routes.php
Route::get('/test/uri-tail', function (Illuminate\Http\Request $request) {
$route = $request->route();
$uri_path = $route->getPath();
$uri_parts = explode('/', $uri_path);
$uri_tail = end($uri_parts);
return view('example2')->with('uri_tail', $uri_tail);
});
// resources/views/example2.blade.php
The last part of the route URI is <b>{{ $uri_tail }}</b>.
使用request helper在刀片中完成所有操作。
// app/Http/routes.php
Route::get('/test/uri-tail', function () {
return view('example3');
});
// resources/views/example3.blade.php
The last part of the route URI is <b>{{ array_slice(explode('/', request()->route()->getPath()), -1, 1) }}</b>.
答案 3 :(得分:8)
使用basename()
和Request::path()
。
basename(request()->path())
您应该能够在代码中的任何位置调用它,因为request()
是Laravel中的全局帮助函数,basename()
是一个标准的PHP函数,也可以在全局使用。
答案 4 :(得分:5)
使用Laravel的帮助功能&#39;最后&#39;
last(request()->segments())
答案 5 :(得分:4)
尝试request()->segment(2)
它应该为您提供一段网址。
在您的示例中,根据网址的细分数量,它应该是request()->segment(3)
或transaction.add(R.id.placeholder, newFragment);
。
答案 6 :(得分:0)
这对我有用:
request()->path()
来自www.test.site/news
get - &gt;消息
答案 7 :(得分:0)
您的控制器:
use Illuminate\Support\Facades\URL;
file.blade.php:
echo basename(URL::current());
答案 8 :(得分:-1)
尝试:
{{ array_pop(explode('/',$_SERVER['REQUEST_URI'])) }}
它应该运作良好。