Я тестирую свой API, поэтому хочу создавать запросы, но не могу заставить работать параметры. Все, что я делаю, это добавляю параметр с Hello, указывающим на World, но Hello возвращает NULL, когда я пытаюсь получить этот параметр. Чего не хватает? Вот код:
//This is routes.php:
<?php
Route::get('/testapi', 'TestController@testapi');
Route::get('/json/locations', 'APILocationController@getForUser');
?>//This is TestController.php:
<?php
class TestController extends \BaseController {
public function testapi() {
echo 'Create the request';
echo '<br>';
$request = Request::create('/json/locations', 'GET', array('Hello' => 'World'));
return Route::dispatch($request)->getContent();
}
}
?>//This is APILocationController.php:
<?php
class APILocationController extends \BaseController {
public function getForUser() {
echo var_dump(Request::get('Hello'));
echo '<br>';
return Response::json(array('message' => 'Index all locations based on User'), 200);
}
}
?>
//This is the output:
Create the request
NULL
{"message":"Index all locations based on User"}
// Как это «NULL»?
Добавление «Request :: replace ($ request-> input ());» решил мою проблему, я понятия не имею, почему:
$request = Request::create('/json/locations', 'GET', array('Hello' => 'World'));
Request::replace($request->input());
return Route::dispatch($request)->getContent();
Во всяком случае, это работает сейчас. Забыл обновить вопрос здесь.
Чтобы получить параметры GET или POST в Laravel, вы должны использовать вход.
<?php
class APILocationController extends \BaseController {
public function getForUser() {
echo var_dump(Input::get('Hello'));
echo '<br>';
return Response::json(array('message' => 'Index all locations based on User'), 200);
}
}