index for else ciclo laravel laravel-5 laravel-5.1 laravel-5.2 blade

for - Obtenga la última parte de la URL actual en Laravel 5 usando Blade



laravel foreach index (7)

¿Cómo obtener la última parte de la URL actual sin el ''/'' de forma dinámica?

p.ej:

www.news.com/foo/bar
obtener -> barra

www.news.com/foo/bar/fun
obtener -> diversión

¿Dónde poner la función o cómo implementar esto en la vista actual?


El objeto Route es la fuente de la información que desea. Hay algunas maneras en que puede obtener la información y la mayoría de ellas implican pasar algo a su vista. Recomiendo encarecidamente no hacer el trabajo dentro del blade, ya que para eso son las acciones del controlador.

Pasando un valor a la cuchilla

La forma más fácil es convertir la última parte de la ruta en un parámetro y pasar ese valor a la vista.

// 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>.

Evitar los parámetros de ruta requiere un poco más de trabajo.

// 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>.

Haciendo todo en la cuchilla usando el asistente de solicitud .

// 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>.


Prueba con:

{{ array_pop(explode(''/'',$_SERVER[''REQUEST_URI''])) }}

Debería funcionar bien.


Pruebe request()->segment($number) debería darle un segmento de la URL.

En su ejemplo, probablemente debería ser request()->segment(2) o request()->segment(3) función del número de segmentos que tiene la URL.


Por supuesto, siempre existe la forma de Laravel:

request()->segment(count(request()->segments()))


Fue útil para mí:

request()->path()

de www.test.site/news

obtener -> noticias


Así es como lo hice:

{{ collect(request()->segments())->last() }}


Use basename() junto con Request::path() .

basename(request()->path())

Debería poder invocarlo desde cualquier lugar de su código, ya que request() es una función auxiliar global en Laravel y basename() es una función PHP estándar que también está disponible en todo el mundo.