Lumen: lấy tham số URL trong chế độ xem Blade


81

Tôi đang cố lấy tham số url từ tệp chế độ xem.

Tôi có url này:

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

và một tệp dạng xem được đặt tên example.blade.php.

Từ bộ điều khiển tôi có thể nhận được các tham số avới $request->input('a').

Có cách nào để lấy tham số như vậy từ khung nhìn (mà không cần phải chuyển nó từ bộ điều khiển sang khung nhìn) không?


Bạn có thể truy cập vào $_GET[]mảng, nhưng tôi không khuyên bạn nên làm điều đó. Bạn nên chuyển nó từ bộ điều khiển sang chế độ xem, không chắc chắn lý do tại sao bạn không muốn.
Tim Lewis

@TimLewis Tôi sẽ tránh chuyển nó từ bộ điều khiển vì nếu tôi có nhiều tham số, nó có thể gây phiền nhiễu và sẽ nhanh hơn nếu có cách lấy trực tiếp từ chế độ xem.
Andrea,

Tôi đoán có thể rất tẻ nhạt khi xác định và chuyển rất nhiều biến từ bộ điều khiển sang chế độ xem, nhưng tôi sẽ cảm thấy tẻ nhạt với các thực hành xấu bất kỳ ngày nào ...
Tim Lewis

Hãy suy nghĩ về lý do tại sao bạn không thể truy cập $ yêu cầu trực tiếp trong quan điểm, cũng tại sao truy cập vào $ _GET, $ _ POST, $ _ REQUEST trực tiếp là xấu thực hành
mvladk

@mvladk true, thực sự. Các khung công tác loại bỏ dữ liệu xấu tiềm ẩn khỏi các biến này.
Bhargav Nanekalva

Câu trả lời:


108

Điều này hoạt động tốt:

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

Trong trường hợp alà tham số url.

Xem thêm tại đây: http://blog.netgloo.com/2015/07/17/lumen-getting-current-url-parameter-within-a-blade-view/


điều này sẽ trả về tất cả các thông sốapp('request')->request->all()
dav

những gì sẽ là đường đi nếu URL của tôi cũng giống như locahost: 8000 / example / 10 và I Wanna nhận được giá trị 10 @Andrea
Sajeeb Ahamed

@SajeebAhamed Tốt hơn bạn nên đặt câu hỏi này như một câu hỏi mới: stackoverflow.com/questions/ask
Andrea



21

Cung cấp URL của bạn:

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

Cách tốt nhất mà tôi đã tìm thấy để nhận giá trị cho 'a' và hiển thị nó trên trang là sử dụng như sau:

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

Tuy nhiên, nếu bạn muốn sử dụng nó trong câu lệnh if, bạn có thể sử dụng:

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

Hy vọng rằng sẽ giúp một ai đó! :)


9

Cái này làm việc tốt cho tôi:

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

Ví dụ: để lấy tham số phân trang trên chế độ xem phiến:

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


7

Bạn có thể hiển thị công khai Inputmặt tiền thông qua một bí danh trong config/app.php:

'aliases' => [
    ...

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

Và truy cập $_GETcác giá trị tham số url bằng cách sử dụng mặt tiền trực tiếp bên trong Blade view / template:

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

Lumen có thư mục / config?
Mahefa

6

Theo 5,8 tài liệu chính thức :

Hàm request () trả về cá thể yêu cầu hiện tại hoặc lấy một mục đầu vào:

$request = request();

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

Docs



1

nếu bạn sử dụng route và pass paramater, hãy sử dụng mã này trong tệp phiến của bạn

{{dd(request()->route()->parameters)}}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.