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());
}
22
demandé sur Jeff Puckett 2016-05-09 07:49:14

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']);
47
répondu Alexey Mezenin 2018-01-03 07:04:52

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

15
répondu mushood badulla 2017-10-05 12:25:22

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());
}
5
répondu Wiicho Orozco 2018-03-31 03:51:47

Vous pouvez aussi utiliser: $request->request->set(clé, valeur). Convient le mieux pour moi.

5
répondu cosminpanait 2018-05-06 15:44:57

J'ai essayé la fonction $request->merge($array) dans Laravel 5.2 et cela fonctionne parfaitement.

Exemple:

$request->merge(["key"=>"value"]);
4
répondu Ferhat KOÇER 2018-08-27 21:57:43

J'ai utilisé ce code pour ajouter quelque chose à ma demande.

$req->query->add(['key'=>'variable']);
$req->request->add(['key'=>'variable']);
1
répondu Reza Azami 2017-09-05 15:23:32

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
0
répondu Rahul Gupta 2017-08-18 08:06:39

Une autre façon est

$a = $request->all();
$a['variable'] = 'value';
-1
répondu Imran 2017-07-23 11:22:26
$request->offsetSet(key, value);
-1
répondu ahcyT 2018-07-08 12:24:16