Eloquent 함수를 호출하기 전에 요청에 추가 값을 추가하기 위해 Request 매개 변수를 사용하여 store () 또는 update () 메서드를 호출하는 동안 Laravel에서 상황이 발생했습니다.
function store(Request $request)
{
// some additional logic or checking
User::create($request->all());
}
답변
일반적으로 Request 객체에 아무것도 추가하지 않으려는 경우 수집 및 put()
도우미 를 사용하는 것이 좋습니다 .
function store(Request $request)
{
// some additional logic or checking
User::create(array_merge($request->all(), ['index' => 'value']));
}
User::create($request->all() + ['index' => 'value']);
그러나 정말로 Request 객체에 무언가를 추가하고 싶다면 다음과 같이하십시오.
$request->request->add(['variable' => 'value']); //add request
답변
Alexey Mezenin
답변 참조 :
그의 대답을 사용하는 동안 요청 객체에 직접 추가하고 다음을 사용했습니다.
$request->request->add(['variable', 'value']);
이것을 사용하여 두 개의 변수를 추가합니다.
$request[0] = 'variable', $request[1] = 'value'
당신이 나와 같은 초보자이고 동료 배열이 필요하다면 올바른 방법은
$request->request->add(['variable' => 'value']);
시간을 절약했으면 좋겠어
추신 : 감사합니다 @Alexey
, 당신은 정말로 당신의 대답으로 나를 도왔습니다
답변
$request->merge($array)
Laravel 5.2에서 기능을 시도했는데 완벽하게 작동합니다.
예:
$request->merge(["key"=>"value"]);
답변
이 주제에 대해 충분히 말했지만 내 대답을 추가하는 것을 거부 할 수 없었습니다. 가장 간단한 접근 방식은
request()->merge([ 'foo' => 'bar' ]);
답변
laravel 5.6에서는 미들웨어간에 매개 변수를 전달할 수 있습니다. 예를 들면 다음과 같습니다.
FirstMiddleware
public function handle($request, Closure $next, ...$params)
{
//some code
return $next($request->merge(['key' => 'value']));
}
SecondMiddleware
public function handle($request, Closure $next, ...$params)
{
//some code
dd($request->all());
}
답변
아래 코드를 사용할 수도 있습니다.
$request->request->set(key, value).
나에게 더 잘 맞습니다.
답변
ex : newParam
에 대한 새 매개 변수를 현재 Request
Object에 추가하려면 다음을 수행 할 수 있습니다.
$newParam = "paramvalue";
$request->request->add(['newParam' => $newParam]);
새 매개 변수를 추가 한 후 다음과 같이 요청 객체에 새로 추가 된 매개 변수를 볼 수 있습니다.
dd($request);//prints the contents of the Request object