programing

Larabel에서 POST의 모든 정보를 얻는 방법

copysource 2022. 9. 25. 14:45
반응형

Larabel에서 POST의 모든 정보를 얻는 방법

저는 Larabel 5를 사용하고 있는데 이렇게 컨트롤러에 POST 변수를 입력하려고 합니다.

public function add_question()
{
    return Request::all();
}

이 에러가 발생하고 있습니다.

여기에 이미지 설명 입력

내가 뭘 잘못하고 있지?

다음을 시도해 보십시오.

use Illuminate\Support\Facades\Request;
public function add_question(Request $request)
{
    return $request->all();
}

GET 및 POST 데이터를 모두 보여주는 현재 답변에는 큰 오류가 있는 것으로 보입니다.POST 데이터뿐만이 아닙니다.

당신의 코드와 관련된 문제는 당신이 정면을 수입하지 않았다는 것입니다.이것을 Import 하려면 , 상부에 다음의 항목을 추가합니다.

use Request;

public function add_question(Request $request)
{
    return Request::post();
}

@Canaan Etai에서 언급한 것과 같은 글로벌 요구 방식을 Import 없이 사용할 수도 있습니다.

request()->post();

그러나 Import에 대한 보다 나은 접근법Request컨트롤러 방식에서는 @shuvrow answer에서 설명한 바와 같이 의존성 주입이 사용됩니다.

use Illuminate\Http\Request;

public function add_question(Request $request)
{
    return $request->post();
}

DI에 대한 자세한 내용은 다음을 참조하십시오.

어느 경우든 다음을 사용해야 합니다.

// Show only POST data
$request->post(); // DI
request()->post(); // global method
Request::post(); // facade

// Show only GET data
$request->query(); // DI
request()->query(); // global method
Request::query(); // facade

// Show all data (i.e. both GET and POST data)
$request->all(); // DI
request()->all(); // global method
Request::all(); // facade

'POST의 모든 입력을 받는 방법'을 찾으시는 분만을 대상으로 합니다.

TLDR;

Laravel > = 5.5

$request->post() 
// or 
$request->post('my_param')

이전 버전

$request->request->all(); //Get all post requests
$request->request->get('my_param'); //Get a post parameter

설명.

학급Illuminate\Http\Request에서 뻗다Symfony\Component\HttpFoundation\Request여기에는 요청 파라미터를 저장하는2개의 클래스 변수가 있습니다.

public $query- GET 파라미터의 경우

public $request- POST 파라미터의 경우

$request->request->all(); //Get all post requests
$request->request->get('my_param'); //Get a post parameter

$request->post()버전 5.5 이후의 내부 콜의 경우$request->request->all()또는$request->request->get('my_param')각각 다음과 같다.

출처는 이쪽

정면을 사용해야 합니다.Illuminate\Http\Request. 맨 위에서 Import:

use Request;

그리고 다른 반과 충돌하지 않도록 하세요.

편집: 이 답변은 몇 년 전에 작성되었습니다.나는 이제 아래의 shuvrow가 제안한 접근법을 선호한다.

모든 포스트 데이터를 이 함수로 가져올 수 있습니다.-

$postData = $request->post();

특정 파일을 원하는 경우 다음을 사용하십시오.

$request->post('current-password');

종속성을 클래스에 첨부하는 것보다 사용하는 것이 좋습니다.

public function add_question(Request $request)
{
    return Request::all();
}

또는 입력 변수 사용을 선호하는 경우

public function add_question(Request $input)
{
    return $input::all();
}

이제 larabel에서 제공하는 글로벌 요청 메서드를 사용할 수 있습니다.

request()

예를 들어 폼 입력의 first_name을 가져옵니다.

request()->first_name
// or
request('first_name')

사용할 수 있습니다.

$params = request()->all();

없이.

import Illuminate\Http\Request또는

use Illuminate\Support\Facades\Request아니면 다른 것.

적어도 다음과 같아야 합니다.

public function login(Request $loginCredentials){
     $data = $loginCredentials->all();
     return $data['username'];
}

언급URL : https://stackoverflow.com/questions/32718870/how-to-get-all-input-of-post-in-laravel

반응형