155 votes

Comment changer la valeur d'un paramètre de requête dans laravel ?

J'ai besoin de changer la valeur de mon paramètre de demande comme ceci :

$request->name = "My Value!";

J'utilise ce code mais il ne fonctionne pas :

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

2 votes

Duplicata possible de Laravel change la valeur d'entrée - la réponse se trouve dans le commentaire de la première question.

4voto

Oleg Points 330

Si vous utilisez des requêtes personnalisées pour la validation, pour remplacer des données pour la validation, ou pour définir des données par défaut (pour les cases à cocher ou autres), utilisez la méthode de remplacement. 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'),
        ]);
    }
}

J'espère que ces informations seront utiles à quelqu'un.

2voto

Phuc Points 1

Cela fonctionne pour moi

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

vérifier le résultat

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

2voto

phoenix Points 722

De bonnes réponses ici, mais j'avais besoin de remplacer une valeur dans une requête JSON. Après avoir creusé un peu dans le code, je suis arrivé au code suivant. Faites-moi savoir si je fais quelque chose de stupide.

$json = $request->json()->all();
$json['field'] = 'new value';
$request->json()->replace($json);

1voto

Waseem Alhabash Points 359

Essayez cela :

$request["name"] = "My New Value";
$request["img"]  = $img;

Cela a fonctionné dans Laravel 8.

0voto

Isuru Dilshan Points 117

Assurez-vous également de mettre à jour la classe du modèle.

Item 
{
    fillable=[
        'img',
        ... // other attributes
    ];
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X