Поэтому я не совсем уверен, как это сделать. Я пробовал несколько вещей, и я перечислю один ниже, но то, что я пытаюсь сделать, – это хранить информацию, отправленную в HTTP-запросе в переменной PHP.
Вот сообщение от Chrome Postman от меня, отправляющего запрос, который я хочу отправить. Примечание. «Pubapi» – это «заголовок».
Я уже возился с запросами Lumen, как вы можете видеть здесь ( http://lumen.laravel.com/docs/requests ), и попытался использовать нижеприведенное ниже, чтобы отобразить их, но не работает.
echo Request::all();
Я помещаю это в свой контроллер, и у меня есть …
use Illuminate\Http\Request;
в моем контроллере.
Итак, как я могу сказать, сохранить заголовок, который я отправляю «pubapi» в переменную php в моем контроллере?
РЕДАКТИРОВАТЬ
Не уверен, что это поможет, однако, глядя на документы Laravel frameworks, я вижу этот 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');
Казалось, что он работает отлично. Может ли кто-нибудь дать дополнительное объяснение тому, почему это сработало, а мой оригинальный метод – нет?