Je rencontre une situation dans Laravel lors de l'appel d'une méthode store () ou update () avec le paramètre Request pour ajouter une valeur supplémentaire à la demande avant d'appeler des fonctions Eloquent. Il n'y a aucun moyen de le faire.
function store(Request $request)
{
// some additional logic or checking
User::create($request->all());
}
Généralement, vous ne voulez rien ajouter à un objet Request, il est préférable d'utiliser la collection et put()
helper
function store(Request $request)
{
// some additional logic or checking
User::create(array_merge($request->all(), ['index' => 'value']));
}
Ou vous pourriez tableau des syndicats :
User::create($request->all() + ['index' => 'value']);
Mais si vous voulez vraiment ajouter quelque chose à un objet Request, procédez comme suit:
$request->request->add(['variable' => 'value']); //add request
En référence à Alexey Mezenin
réponse:
En utilisant sa réponse, je devais ajouter quelque chose directement à l'objet Request et utiliser:
$request->request->add(['variable', 'value']);
En utilisant cela, il ajoute deux variables:
$request[0] = 'variable', $request[1] = 'value'
Si vous êtes un débutant comme moi et que vous avez besoin d’un tableau d’associés, la bonne façon de le faire est de:
$request->request->add(['variable' => 'value']);
J'espère que j'ai économisé du temps
PS: Merci @Alexey
, vous m'avez vraiment aidé avec votre réponse
J'ai essayé la fonction $request->merge($array)
dans Laravel 5.2 et cela fonctionne parfaitement.
Exemple:
$request->merge(["key"=>"value"]);
Dans laravel 5.6, nous pouvons passer des paramètres entre middlewares, par exemple:
Premier moyen
public function handle($request, Closure $next, ...$params)
{
//some code
return $next($request->merge(['key' => 'value']));
}
Deuxième moyen
public function handle($request, Closure $next, ...$params)
{
//some code
dd($request->all());
}
assez dit à ce sujet mais je ne pouvais pas résister à ajouter ma propre réponse. Je crois que l'approche la plus simple est
request()->merge([ 'foo' => 'bar' ]);
Pour ajouter un nouveau paramètre pour ex: newParam
à l'objet Request
en cours, vous pouvez effectuer les opérations suivantes:
$newParam = "paramvalue";
$request->request->add(['newParam' => $newParam]);
Après avoir ajouté le nouveau paramètre, vous pourrez voir ce paramètre ajouté à l’objet Request de la manière suivante:
dd($request);//prints the contents of the Request object
J'ai utilisé ce code pour ajouter quelque chose à ma demande.
$req->query->add(['key'=>'variable']);
$req->request->add(['key'=>'variable']);
Vous pouvez accéder directement au tableau de requêtes avec $request['key'] = 'value'
;