'/'なしで現在のURLの最後の部分を取得するにはどうすればよいですか?Bladeを使用してLaravel 5の現在のURLの最後の部分を取得します
例:
www.news.com/foo/bar
GET - >バー
www.news.com/foo/bar/fun
GET - >楽しい
関数を配置する場所、または現在のビューでこれを実装する方法は?
'/'なしで現在のURLの最後の部分を取得するにはどうすればよいですか?Bladeを使用してLaravel 5の現在のURLの最後の部分を取得します
例:
www.news.com/foo/bar
GET - >バー
www.news.com/foo/bar/fun
GET - >楽しい
関数を配置する場所、または現在のビューでこれを実装する方法は?
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>.
もう少し作業が必要です。 request helperを使用してブレードでそれをすべて行う
// 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>.
。もちろん
// 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>.
試してみてください。request()->segment($number)
URLのセグメントが必要です。
例では、URLのセグメント数に基づいて、おそらくrequest()->segment(2)
またはrequest()->segment(3)
になるはずです。
はして試してみてください。
{{ array_pop(explode('/',$_SERVER['REQUEST_URI'])) }}
それはうまく動作するはずです。
rtrimを追加して、必要に応じて最後のスラッシュを削除します。 –
Laravelの方法が常にある:
request()->segment(count(request()->segments()))
私の最初の考えはまさに1行のコード;-)簡単に理解できる –
それは私のために有用であった:
request()->path()
GET www.test.site/newsから - >ニュース
これまでの最も単純な解決方法 – Farveaz
blablaではなくexample/blabla –
これは私がそれをした方法です:
{{ collect(request()->segments())->last() }}
Request::path()
と一緒にbasename()
を使用してください。
basename(request()->path())
あなたはrequest()
はLaravelのグローバルヘルパー関数であり、basename()
は世界的にも利用可能である標準のPHP関数ですので、どこでも、あなたのコード内からそのを呼び出すことができるはずです。
'最後の'
last(request()->segments())
https://laravel.com/api/5.2/Illuminate/Contracts/Routing/UrlGenerator.html#method_current Laravelのヘルパー関数を使用して、部品を得るために正規表現を行います –
ありがとう、私に例を教えてもらえますか? –
あなたが思い付いたコードを投稿すると、私はあなたを助けます。 –