Ich muss den Wert meines Anforderungsparameters wie folgt ändern:
$request->name = "My Value!";
Ich benutze diesen Code, funktioniert aber nicht:
$request->offsetSet('img', $img);
Ich muss den Wert meines Anforderungsparameters wie folgt ändern:
$request->name = "My Value!";
Ich benutze diesen Code, funktioniert aber nicht:
$request->offsetSet('img', $img);
Antworten:
Verwendung merge()
:
$request->merge([
'user_id' => $modified_user_id_here,
]);
Einfach! Es ist nicht erforderlich, das Ganze $request->all()
in eine andere Variable zu übertragen.
Versuchen zu:
$requestData = $request->all();
$requestData['img'] = $img;
Ein anderer Weg, es zu tun:
$request->merge(['img' => $img]);
Danke an @JoelHinz dafür.
Wenn Sie verschachtelte Daten hinzufügen oder überschreiben möchten:
$data['some']['thing'] = 'value';
$request->merge($data);
Wenn Sie kein Request $request
Objekt injizieren , können Sie stattdessen den globalen request()
Helfer oder die \Request::
Fassade verwenden$request
Request
Quellcode von L5 angesehen und kann diese Methoden sehen. Vielen Dank.
Wenn Sie die Anfrage anpassen müssen
$data = $request->all();
Sie können den Namen des Feldes und den Wert übergeben
$data['product_ref_code'] = 1650;
und schließlich die neue Anfrage weitergeben
$last = Product::create($data);
Wenn Sie benutzerdefinierte Anforderungen zur Validierung, zum Ersetzen von Daten zur Validierung oder zum Festlegen von Standarddaten (für Kontrollkästchen oder andere) verwenden, verwenden Sie die Überschreibungsmethode 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'),
]);
}
}
Ich hoffe, diese Informationen werden jemandem nützlich sein.
Tolle Antworten hier, aber ich musste einen Wert in einer JSON-Anfrage ersetzen. Nachdem ich mich ein wenig mit dem Code befasst hatte, kam ich auf den folgenden Code. Lass es mich wissen, wenn ich etwas Dummes mache.
$json = $request->json()->all();
$json['field'] = 'new value';
$request->json()->replace($json);