Так что я не совсем уверен, как это сделать, я попробовал несколько вещей, и я перечислю один ниже, однако я пытаюсь сохранить информацию, отправленную в запросе http, в переменную PHP.
Вот вид из Chrome Postman, когда я отправляю запрос, который хочу отправить. Примечание «pubapi» является «заголовком».
Я возился с просьбами Люмена, как вы можете видеть документально здесь ( http://lumen.laravel.com/docs/requests ) и попытался использовать следующее ниже, чтобы возможно отобразить их, но это не работает, очевидно.
echo Request::all();
Я помещаю это в мой контроллер, и у меня есть …
use Illuminate\Http\Request;
в моем контроллере.
Итак, как я могу сказать сохранить заголовок, который я посылаю «pubapi» в переменную php в моем контроллере?
РЕДАКТИРОВАТЬ
Не уверен, что это поможет, однако, глядя на документы по фреймворкам Laravel, я вижу это http://laravel.com/api/5.0/Illuminate/Http/Request.html#method_header Попытка этого вызывает ту же ошибку в моем коде. Так, например, я попробовал следующее и достиг той же ошибки.
echo Request::header('pubapi');
Попробуйте изменить Illuminate\Http\Request
в Request
,
- use Illuminate\Http\Request;
+ use Request;
Вы неправильно понимаете объект запроса Laravel на двух уровнях.
Во-первых, ошибка, которую вы получаете, заключается в том, что вы ссылались на объект, а не на Фасад. Фасады позволяют перенаправлять вызовы статических методов в нестатические методы.
Во-вторых, вы отправляете значение в виде заголовка, но пытаетесь получить доступ к параметрам запроса. Это никогда не даст вам то, что вы хотите.
Вот простой способ увидеть пример того, что вы хотите, создав тестовый маршрут следующим образом:
Route::match(['get','post'], '/test', function (Illuminate\Http\Request $request) {
dd($request->headers->all());
});
Отправьте сообщение по этому маршруту, и вы увидите свои заголовки, один из которых будет pubapi. Обратите внимание, что определение метода маршрута соответствует тому, как вы отправляете запрос (например, GET или POST).
Давайте применим это к контроллеру 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']
*/
}
}
С помощью
echo app('request')->header('pubapi');
Вместо
echo Request::header('pubapi');
Казалось, работает идеально. Может ли кто-нибудь дать дополнительное объяснение, почему это сработало, а мой оригинальный метод — нет?
На самом деле вы вызываете его статически, поэтому он не получает соответствующий класс Request и выдает ошибку, может сделать следующее
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);
}
}