Привет, я создаю API, используя REST и Laravel после этой статьи.
Все работает хорошо, как ожидалось.
Теперь, я хочу отобразить запрос GET для распознавания переменной с помощью «?».
Например: domain/api/v1/todos?start=1&limit=2
Ниже приведено содержание моих маршрутов.php:
Route::any('api/v1/todos/(:num?)', array( 'as' => 'api.todos', 'uses' => 'api.todos@index' ));
мои контроллеры / api / todos.php:
class Api_Todos_Controller extends Base_Controller { public $restful = true; public function get_index($id = null) { if(is_null($id)) { return Response::eloquent(Todo::all(1)); } else { $todo = Todo::find($id); if (is_null($todo)) { return Response::json('Todo not found', 404); } else { return Response::eloquent($todo); } } } }
Как распознать параметр get с помощью "?" ?
Взгляните на супергеллалы $ _GET и $ _REQUEST. Для вашего примера будет работать следующее:
$start = $_GET['start']; $limit = $_GET['limit'];
РЕДАКТИРОВАТЬ
Согласно этому сообщению на форумах laravel , вам нужно использовать Input::get()
, например,
$start = Input::get('start'); $limit = Input::get('limit');
См. Также: http://laravel.com/docs/input#input
Это довольно просто. Я не тестировал другие версии Laravel, но в 5.3 вы просто ссылаетесь на параметр запроса, как если бы он был членом class
Request
.
http://example.com/path?page=2
Route::get('/path', function(Request $request){ //debug $request->page; }); //output "2"
Мы также можем передать значение по умолчанию, которое возвращается, если параметр не существует. Это избавляет нас от этой троичной магии
//bad $page = isset($_POST['page']) ? $_POST['page'] : 1; //do this instead $request->get('page', 1); $request->input('page', 1);
// возвращает страницу 1, если нет страницы
request('page', 1); //returns page 1 if there is no page parameter in the query string
Параметр по умолчанию является необязательным, поэтому его можно опустить
Это лучшая практика. Таким образом вы получите переменные из метода GET, а также метод POST
public function index(Request $request) { $data=$request->all(); dd($data); } //OR if you want few of them then public function index(Request $request) { $data=$request->only('id','name','etc'); dd($data); } //OR if you want all except few then public function index(Request $request) { $data=$request->except('__token'); dd($data); }
иpublic function index(Request $request) { $data=$request->all(); dd($data); } //OR if you want few of them then public function index(Request $request) { $data=$request->only('id','name','etc'); dd($data); } //OR if you want all except few then public function index(Request $request) { $data=$request->except('__token'); dd($data); }
заpublic function index(Request $request) { $data=$request->all(); dd($data); } //OR if you want few of them then public function index(Request $request) { $data=$request->only('id','name','etc'); dd($data); } //OR if you want all except few then public function index(Request $request) { $data=$request->except('__token'); dd($data); }
Параметры запроса используются следующим образом:
use Illuminate\Http\Request; class MyController extends BaseController{ public function index(Request $request){ $param = $request->query('param'); }
В laravel 5.3 $start = Input::get('start');
возвращает NULL
Чтобы решить эту проблему
use Illuminate\Support\Facades\Input; //then inside you controller function use $input = Input::all(); // $input will have all your variables, $start = $input['start']; $limit = $input['limit'];
В ларавеле 5.3
Я хочу показать get param в моем представлении
Шаг 1: мой маршрут
Route::get('my_route/{myvalue}', 'myController@myfunction');
Шаг 2: Напишите функцию внутри вашего контроллера
public function myfunction($myvalue) { return view('get')->with('myvalue', $myvalue); }
Теперь вы возвращаете параметр, который вы передали в представление
Шаг 3: Показывать это в моем представлении
Внутри моего взгляда я могу просто повторить его, используя
{{ $myvalue }}
Итак, если у вас есть это в вашем URL-адресе
http://127.0.0.1/yourproject/refral/this@that.com
Затем он напечатает this@that.com в вашем файле просмотра
надеюсь, это поможет кому-то.