Laravel existe-t-il un moyen d'ajouter des valeurs à un tableau de requêtes
Je rencontre une situation dans Laravel en appelant une méthode store() ou update() avec le paramètre Request pour ajouter une valeur supplémentaire à la requête avant d'appeler des fonctions Eloquent.
function store(Request $request)
{
// some additional logic or checking
User::create($request->all());
}
9 réponses
Habituellement, vous ne voulez rien ajouter à un objet de requête, il est préférable d'utiliser collection et put()
AIDE:
function store(Request $request)
{
// some additional logic or checking
User::create(array_merge($request->all(), ['index' => 'value']));
}
, Ou vous pourriez union des matrices:
User::create($request->all() + ['index' => 'value']);
, Mais, si vous voulez vraiment ajouter quelque chose à un objet de Requête, faites ceci:
$request->request->add(['variable', 'value']);
Se Référant à Alexey Mezenin
réponse:
En utilisant sa réponse, j'ai dû ajouter quelque chose directement à l'objet de requête et utilisé:
$request->request->add(['variable', 'value']);
En utilisant ceci, 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 associé, la bonne façon de faire est
$request->request->add(['variable' => 'value']);
J'espère que j'ai sauvé votre temps
PS: merci @Alexey
, vous m'avez vraiment aidé avec votre réponse
Dans laravel 5.6, nous pouvons passer des paramètres entre Middlewares par exemple:
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());
}
Vous pouvez aussi utiliser: $request->request->set(clé, valeur). Convient le mieux pour moi.
J'ai essayé la fonction $request->merge($array)
dans Laravel 5.2 et cela fonctionne parfaitement.
Exemple:
$request->merge(["key"=>"value"]);
J'ai utilisé ce code pour ajouter quelque chose à ma demande.
$req->query->add(['key'=>'variable']);
$req->request->add(['key'=>'variable']);
Pour ajouter un nouveau paramètre pour ex: newParam
à l'objet Request
actuel, vous pouvez faire:
$newParam = "paramvalue";
$request->request->add(['newParam' => $newParam]);
Après avoir ajouté le nouveau paramètre, vous pourrez voir ce paramètre nouvellement ajouté à l'objet de requête par:
dd($request);//prints the contents of the Request object
Une autre façon est
$a = $request->all();
$a['variable'] = 'value';