laravel 5.2 Как получить параметр маршрута в клинке?

это мой URL-адрес http://project.dev/blogs/image-with-article, поэтому здесь мне нужен параметр image-with-article в моем лезвии для отображения, который является параметром с именем slug здесь, в моем файле маршрутов. Мне нужен параметр slug в лезвии.

Route::get('/blogs/{slug}', ['as'=>'blog.by.slug', 'uses'=> 'CmsController@show']);

person msonowal    schedule 18.08.2016    source источник


Ответы (4)


Я не уверен, что ты имеешь в виду. Если вы пытаетесь построить маршрут в шаблоне Blade, используйте

<a href="{{ route('blog.by.slug', ['slug' => 'someslug']) }}">...</a>

Если вы пытаетесь получить доступ к данному параметру, я бы предложил передать его из контроллера:

// CmsController
public function show($slug)
{
    // other stuff here
    return view('someview', compact('slug'));
}

// someview.blade.php
{{ $slug }}

И если вам действительно нужно получить доступ к параметру из представления без предварительной отправки его из контроллера ... вам действительно не следует, но вы можете использовать фасад:

{{ Request::route('slug') }}
person Joel Hinz    schedule 18.08.2016
comment
Я хотел бы поблагодарить себя за поиски того, как это сделать, но обнаружил, что я на два года моложе себя сказал мне, что это глупая идея. - person Joel Hinz; 30.03.2019
comment
Привет, почему твое последнее решение было бы плохой практикой? Я считаю это хорошим ярлыком в шаблоне, чтобы не занимать ненужным образом переданный ему массив переменных. - person ankabot; 25.11.2020
comment
@ankabot Обычно я хочу сохранить любую логику вне представлений и просто передать им все, что им нужно. Это не строгое правило, и каждый решает, что он предпочитает, но, как правило, это считается лучшей практикой. - person Joel Hinz; 26.11.2020

Если вы хотите получить параметры без использования метода контроллера

{{dd(request()->route()->parameters)}}
person Ivan Z.    schedule 14.06.2017
comment
Это не работает; он возвращается пустым. dd(request()->query('testing')) хотя работает. - person sykez; 02.07.2019

В Laravel 8 вы можете просто использовать request()->route('parameter_name').

person Jakub Adamec    schedule 06.10.2020

Легкий способ Просто {{ dd(request()->query("PARAMNAME")) }}

чтобы получить все параметры {{ dd(request()->query()) }}

person Rahman Rezaee    schedule 01.02.2021