log headers example cookie php rest laravel lumen

php - headers - Laravel 5/Lumen Solicitud de encabezado?



laravel log file (4)

En realidad lo está llamando de forma estática, es por eso que no está obteniendo la clase de solicitud adecuada y el error de lanzamiento, puede hacer lo siguiente

use Illuminate/Http/Request; //inside your controller class YourClass extends Controller{ public function yourFunction(Request $request){ //for getting all the request dd($request->all()); //for getting header content dd($request->header(''pubapi); } }

Así que no estoy muy seguro de cómo hacerlo. He intentado algunas cosas y enumeraré una a continuación, sin embargo, lo que estoy tratando de hacer es almacenar la información enviada en una solicitud http en una variable de PHP.

Aquí hay una vista de Chrome Postman de mí enviando la solicitud que quiero enviar. Nota "pubapi" es un "encabezado".

He estado jugando con las solicitudes de Lumen como puede ver documentado aquí ( http://lumen.laravel.com/docs/requests ) y he intentado usar lo siguiente a continuación para posiblemente mostrarlas pero obviamente no funciona.

echo Request::all();

Estoy poniendo esto en mi controlador y tengo ...

use Illuminate/Http/Request;

en mi controlador

Entonces, ¿cómo podría decir almacenar el encabezado que estoy enviando "pubapi" a una variable php en mi controlador?

EDITAR

No estoy seguro de si esto ayudará, sin embargo, al mirar los documentos de Laravel frameworks, veo que este http://laravel.com/api/5.0/Illuminate/Http/Request.html#method_header intentando el mismo error en mi código. Entonces, por ejemplo, intenté lo siguiente y alcancé el mismo error.

echo Request::header(''pubapi'');


Intente cambiar el Illuminate/Http/Request to Request .

- use Illuminate/Http/Request; + use Request;


Usted malinterpreta el objeto de solicitud Laravel en dos niveles.

Primero, el error que está recibiendo es porque estaba haciendo referencia al objeto en lugar de a la Fachada. Las fachadas tienen una forma de reenviar llamadas de métodos estáticos a métodos no estáticos.

En segundo lugar, está enviando el valor como encabezado pero está intentando acceder a los parámetros de solicitud. Esto nunca te dará lo que quieres.

Esta es una forma sencilla de ver un ejemplo de lo que desea al crear una ruta de prueba como la siguiente:

Route::match([''get'',''post''], ''/test'', function (Illuminate/Http/Request $request) { dd($request->headers->all()); });

Publicar en esta ruta y verá sus encabezados, uno de los cuales será pubapi . Tenga en cuenta que la definición del método de ruta coincide con la forma en que envía la solicitud (es decir, GET o POST).

Apliquemos esto al controlador, ArticleController:

<?php namespace App/Http/Controllers; use Illuminate/Http/Request; class ArticleController extends Controller { public function index(Request $request) { $pubapi = $request->header(''pubapi''); // string $headers = $request->headers->all(); // array /* $pubapi === $headers[''pubapi''] */ } }


Utilizando

echo app(''request'')->header(''pubapi'');

En lugar de

echo Request::header(''pubapi'');

Parecía funcionar perfecto. ¿Podría alguien proporcionar una explicación adicional de por qué esto funcionó y mi método original no?