IT박스

Laravel에서 요청 매개 변수의 값을 변경하는 방법

itboxs 2020. 12. 10. 19:41
반응형

Laravel에서 요청 매개 변수의 값을 변경하는 방법


이 같은 내 요청 매개 변수의 값을 변경해야합니다.

$request->name = "My Value!"

이 코드를 사용하지만 작동하지 않습니다.

$request->offsetSet('img', $img);

하려고 노력하다:

$requestData = $request->all();
$requestData['img'] = $img;

이를 수행하는 또 다른 방법 :

$request->merge(['img' => $img]);

@JoelHinz에게 감사드립니다.

중첩 된 데이터를 추가하거나 덮어 쓰려면 :

$data['some']['thing'] = 'value';
$request->merge($data);

Request $request객체를 주입하지 않으면 대신 전역 request()도우미 또는 \Request::파사드를 사용할 수 있습니다.$request


사용 merge():

$request->merge([
    'user_id' => $modified_user_id_here,
]);

저것과 같이 쉬운! 전체 $request->all()를 다른 변수 로 전송할 필요가 없습니다 .


요청을 사용자 정의해야하는 경우

$data = $request->all();

필드 이름과 값을 전달할 수 있습니다.

$data['product_ref_code'] = 1650;

마지막으로 새로운 요청을 전달

$last = Product::create($data);

그것은 나를 위해 일합니다

$request = new Request();
$request->headers->set('content-type', 'application/json');     
$request->initialize(['yourParam' => 2]);

출력 확인

$queryParams = $request->query();
dd($queryParams['yourParam']); // 2

현재 요청 인스턴스에 값과 키를 입력하는 가장 좋은 방법이라고 생각합니다.

$requestData['price'] = $price;

유효성 검사를 위해 사용자 지정 요청을 사용하거나 유효성 검사를 위해 데이터를 교체하거나 기본 데이터 (체크 박스 또는 기타)를 설정하려면 재정의 메서드 prepareForValidation ()을 사용합니다.

네임 스페이스 App \ Http \ Requests \ Admin \ Category;

class CategoryRequest extends AbstractRequest
{
    protected function prepareForValidation()
        {
            if (!$this->get('url')) {
                $this->merge([
                    'url' => $this->get('name')
                ]);
            }
            $this->merge([
                'url'    => \Str::slug($this->get('url')),
                'active' => (int)$this->get('active'),
            ]);
        }
}

누군가이 정보를 유용하게 사용하기를 바랍니다.

참고 URL : https://stackoverflow.com/questions/36812476/how-to-change-value-of-a-request-parameter-in-laravel

반응형