GET "?"을(를) 가져오는 중(를)
안녕하세요 이 글에 이어 REST와 Laravel을 이용하여 API를 만들고 있습니다.
모든 것이 예상대로 잘 진행됩니다.
이제 "?"를 사용하여 변수를 인식하도록 GET 요청을 매핑하려고 합니다.
예:domain/api/v1/todos?start=1&limit=2
.
아래는 나의 내용입니다.routes.php
:
Route::any('api/v1/todos/(:num?)', array(
'as' => 'api.todos',
'uses' => 'api.todos@index'
));
나의controllers/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 및 $_REQUEST 슈퍼글로벌을 살펴보십시오.예를 들어 다음과 같은 방법을 사용할 수 있습니다.
$start = $_GET['start'];
$limit = $_GET['limit'];
편집
라라벨 포럼의 이 게시물에 따르면, 당신은 다음을 사용해야 합니다.Input::get()
,예.,
$start = Input::get('start');
$limit = Input::get('limit');
참고 항목: http://laravel.com/docs/input#input
5.3-8.0에서는 쿼리 매개 변수를 의 구성원처럼 참조합니다.Request
class
.
URL
http://example.com/path?page=2
마법 방법을 사용한 경로 콜백 또는 컨트롤러 작업에서 요청::__get()
Route::get('/path', function(Request $request){
dd($request->page);
});
//or in your controller
public function foo(Request $request){
dd($request->page);
}
//NOTE: If you are wondering where the request instance is coming from, Laravel automatically injects the request instance from the IOC container
//output
"2"
##3. 기본값 매개 변수가 없는 경우 반환되는 기본값을 전달할 수도 있습니다.일반적으로 요청 전역과 함께 사용하는 삼원 표현보다 훨씬 깨끗합니다.
//wrong way to do it in Laravel
$page = isset($_POST['page']) ? $_POST['page'] : 1;
//do this instead
$request->get('page', 1);
//returns page 1 if there is no page
//NOTE: This behaves like $_REQUEST array. It looks in both the
//request body and the query string
$request->input('page', 1);
##4. 요청 기능 사용하기
$page = request('page', 1);
//returns page 1 if there is no page parameter in the query string
//it is the equivalent of
$page = 1;
if(!empty($_GET['page'])
$page = $_GET['page'];
기본 매개 변수는 선택 사항이므로 생략할 수 있습니다.
##5. 요청 사용하기::query()
입력 메서드가 전체 요청 페이로드(쿼리 문자열 포함)에서 값을 검색하는 동안 쿼리 메서드는 쿼리 문자열에서만 값을 검색합니다.
//this is the equivalent of retrieving the parameter
//from the $_GET global array
$page = $request->query('page');
//with a default
$page = $request->query('page', 1);
##6. Request facade 사용하기
$page = Request::get('page');
//with a default value
$page = Request::get('page', 1);
자세한 내용은 공식 문서 https://laravel.com/docs/5.8/requests 를 참조하십시오.
우리는 지금 비슷한 상황이고 이 답변을 기준으로 라벨 5.6 릴리스를 사용하고 있습니다.
저는 당신의 예를 질문에 사용하지 않고 제 예를 사용하겠습니다. 왜냐하면 그것은 관련이 있기 때문입니다.
다음과 같은 경로가 있습니다.
Route::name('your.name.here')->get('/your/uri', 'YourController@someMethod');
그런 다음 컨트롤러 방법에 다음을 포함해야 합니다.
use Illuminate\Http\Request;
그리고 이 값은 컨트롤러 위에 있어야 하며, 기본값일 가능성이 높습니다.php artisan
이제 URL에서 변수를 가져오려면 다음과 같이 보여야 합니다.
public function someMethod(Request $request)
{
$foo = $request->input("start");
$bar = $request->input("limit");
// some codes here
}
HTTP 동사에 관계없이 input() 메서드를 사용하여 사용자 입력을 검색할 수 있습니다.
https://laravel.com/docs/5.6/requests#retrieving-input
도움이 되길 바랍니다.
이것이 최선의 방법입니다.이렇게 하면 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);
}
쿼리 매개 변수는 다음과 같이 사용됩니다.
use Illuminate\Http\Request;
class MyController extends BaseController{
public function index(Request $request){
$param = $request->query('param');
}
인라벨 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/당신의 프로젝트/refral/this@that.com
그러면 당신의 보기 파일에 this@that.com 이 인쇄될 것입니다.
이것이 누군가에게 도움이 되기를 바랍니다.
다음과 같은 네이티브 php 리소스를 사용하는 것은 좋지 않습니다.$_GET
라라벨이 변수를 쉽게 구할 수 있는 방법을 알려준 것처럼.표준적으로, 가능할 때마다 순수한 PHP 대신 라라벨 자체의 자원을 사용합니다.
Laravel(Laravel 5.x 이상)에서 GET로 변수를 가져오는 모드는 적어도 두 가지입니다.
모드 1
경로:
Route::get('computers={id}', 'ComputersController@index');
요청(POSTMAN 또는 클라이언트...):
http://localhost/api/computers=500
- 컨롤러 - 액할수다있에 수 .{id}
컨트롤러의 매개 변수:
public function index(Request $request, $id){
return $id;
}
모드 2
경로:
Route::get('computers', 'ComputersController@index');
요청(POSTMAN 또는 클라이언트...):
http://localhost/api/computers?id=500
- 컨롤러 - 액할수다있에 수 .?id
컨트롤러의 매개 변수:
public function index(Request $request){
return $request->input('id');
}
언급URL : https://stackoverflow.com/questions/15081090/getting-get-variable-in-laravel
'programing' 카테고리의 다른 글
앵귤러 5에서 스프링부츠 2에서 발행한 json 스트림 처리 방법. (0) | 2023.07.25 |
---|---|
XOR 합계란 무엇입니까? (0) | 2023.07.25 |
jQuery 'input' 이벤트 (0) | 2023.07.25 |
Node.js가 Blobs를 생성할 수 없습니까? (0) | 2023.07.25 |
MariaDB: 그룹화 세트/롤업으로 정렬하려면 어떻게 해야 합니까? (0) | 2023.07.25 |