Lumen: отримати параметр URL-адреси у поданні Blade


84

Я намагаюся отримати параметр url з файлу представлення.

У мене є така URL-адреса:

http://locahost:8000/example?a=10

і файл перегляду з іменем example.blade.php.

З контролера я можу отримати параметр за aдопомогою $request->input('a').

Чи є спосіб отримати такий параметр з подання (без необхідності передавати його з контролера у вигляд)?


Ви можете отримати доступ до $_GET[]масиву, але я б не рекомендував це робити. Вам слід передати його з контролера у подання, не знаючи, чому ви цього не хочете.
Тім Льюїс

@TimLewis Я б уникав передавати його від контролера, тому що, якщо у мене багато параметрів, це може дратувати, і це має бути швидше, щоб отримати його прямо з подання.
Андреа

Я думаю, це може бути нудно визначати та передавати багато змінних з контролера у подання, але я б хотів би робити нудність через погані практики будь-якого дня ...
Тім Льюїс

Подумайте про причину, через яку ви не можете отримати доступ до $ request безпосередньо з огляду, а також про те, чому прямий доступ до $ _GET, $ _ POST, $ _ REQUEST - погана практика
mvladk

@mvladk правда, насправді. Фреймворки видаляють потенційно погані дані з цих змінних.
Бхаргав Нанекалва

Відповіді:


110

Це добре працює:

{{ app('request')->input('a') }}

Де aпараметр url.

Детальніше див. Тут: http://blog.netgloo.com/2015/07/17/lumen-getting-current-url-parameter-within-a-blade-view/


це поверне все Paramsapp('request')->request->all()
DAV

яким би був спосіб, якщо моя URL-адреса схожа на locahost: 8000 / example / 10, і я хочу отримати значення 10. @Andrea
Sajeeb Ahamed

@SajeebAhamed Краще стави це як нове запитання: stackoverflow.com/questions/ask
Андреа


25

Враховуючи вашу URL-адресу:

http://locahost:8000/example?a=10

Найкращий спосіб, який я знайшов, щоб отримати значення "а" і відобразити його на сторінці, це використовувати наступне:

{{ request()->get('a') }}

Однак, якщо ви хочете використовувати його в операторі if, ви можете використовувати:

@if( request()->get('a') )
    <script>console.log('hello')</script>
@endif

Сподіваюся, це комусь допомагає! :)



9

Для мене це чудово працює:

{{ app('request')->input('a') }}

Приклад: щоб отримати параметр пагінації у вигляді леза:

{{ app('request')->input('page') }}


7

Ви можете публічно виставити Inputфасад за допомогою псевдоніма config/app.php:

'aliases' => [
    ...

    'Input' => Illuminate\Support\Facades\Input::class,
]

І отримати доступ до $_GETзначень параметрів url, використовуючи фасад безпосередньо всередині подання / шаблону Blade:

{{ Input::get('a') }}

Lumen має / папку config?
Махефа

7

Відповідно до офіційних 5.8 документів:

Функція request () повертає поточний екземпляр запиту або отримує елемент введення:

$request = request();

$value = request('key', $default);

Документи



1

якщо ви використовуєте параметр route і pass, використовуйте цей код у своєму файлі леза

{{dd(request()->route()->parameters)}}

0

Відповідно до офіційної документації 8.x

Ми використовуємо помічник request

Функція запиту повертає поточний екземпляр запиту або отримує значення поточного поля з поточного запиту:

$request = request();

$value = request('key', $default);

значення запиту - це масив, який ви можете просто отримати за допомогою вводу, використовуючи клавішу введення, як описано нижче

$id = request()->id; //for http://locahost:8000/example?id=10
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.