내 요청 매개 변수의 값을 다음과 같이 변경해야합니다.
$request->name = "My Value!";
이 코드를 사용하지만 작동하지 않습니다.
$request->offsetSet('img', $img);
답변
사용 merge()
:
$request->merge([
'user_id' => $modified_user_id_here,
]);
단순한! 전체 $request->all()
를 다른 변수 로 전송할 필요가 없습니다 .
답변
하려고 노력하다:
$requestData = $request->all();
$requestData['img'] = $img;
이를 수행하는 또 다른 방법 :
$request->merge(['img' => $img]);
@JoelHinz에게 감사드립니다.
중첩 된 데이터를 추가하거나 덮어 쓰려면 :
$data['some']['thing'] = 'value';
$request->merge($data);
Request $request
객체를 주입하지 않으면 대신 전역 request()
도우미 또는 \Request::
파사드를 사용할 수 있습니다.$request
답변
요청을 사용자 정의해야하는 경우
$data = $request->all();
필드 이름과 값을 전달할 수 있습니다.
$data['product_ref_code'] = 1650;
마지막으로 새로운 요청을 전달
$last = Product::create($data);
답변
요청에서 속성을 업데이트해야하는 경우 Laravel에서 사용하는 Request 클래스의 replace 메서드를 사용하는 것이 좋습니다.
$request->replace(['property to update' => $newValue]);
답변
여기에 훌륭한 답변이 있지만 JSON 요청의 값을 대체해야했습니다. 코드를 조금 파헤친 후 다음 코드를 생각해 냈습니다. 내가 멍청한 짓을하고 있는지 알려주세요.
$json = $request->json()->all();
$json['field'] = 'new value';
$request->json()->replace($json);
답변
유효성 검사를 위해 사용자 지정 요청을 사용하거나 유효성 검사를 위해 데이터를 바꾸거나 기본 데이터 (확인란 또는 기타)를 설정하려면 override 메소드를 사용하십시오 prepareForValidation()
.
namespace 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'),
]);
}
}
이 정보가 누군가에게 도움이되기를 바랍니다.
답변
그것은 나를 위해 일합니다
$request = new Request();
$request->headers->set('content-type', 'application/json');
$request->initialize(['yourParam' => 2]);
출력 확인
$queryParams = $request->query();
dd($queryParams['yourParam']); // 2