programing

GET "?"을(를) 가져오는 중(를)

abcjava 2023. 7. 25. 20:24
반응형

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

반응형