Solicitud de Laravel: Fusionar sobre la marcha

Fusionar una solicitud de Laravel sobre la marcha

Cómo cambiar o agregar un nuevo valor a un parámetro de solicitud de Laravel.

Solicitud de Laravel


La solución está en la Parte B.

 

Parte A: (Introducción)

Veamos primero cómo funciona la función auxiliar merge () en Laravel:

El método  fusiona la matriz o colección dada con la matriz o colección original. Si una clave de cadena en los elementos dados coincide con una clave de cadena en la colección original, el valor de los elementos dados sobrescribirá el valor en la colección original:

$collection = collect(['product_id' => 1, 'price' => 100]);

agregar o actualizar la colección:

$merged = $collection->merge(['price' => 200, 'discount' => false]);

La nueva colección será:

$merged->all();

// ['product_id' => 1, 'price' => 200, 'discount' => false]

Si la matriz dada no es una matriz asociativa (las claves de los elementos dados son numéricas), los valores se agregarán al final de la colección.

$collection = collect(['Desk', 'Chair']);

$merged = $collection->merge(['Bookcase', 'Door']);

$merged->all();

// ['Desk', 'Chair', 'Bookcase', 'Door']

 

Parte B:

B-I: Lo que estamos fusionando es un valor simple.

Usted sabe que  es un objeto y  es una matriz y no una colección.

Image for post

Ahora, supongamos que hay una solicitud de que vamos a agregar o actualizar su valor asociado a la clave “imagen”. Simplemente puede hacer esto:

Image for post

Image for post

B-II: A veces, el valor (parámetro) que estamos fusionando (actualizando o agregando) es en sí mismo una matriz:

B-II-agregando:

En el caso de agregar y no actualizar, solo necesita seguir B-I.

Como ejemplo, suponga que no hay una clave de  en 

Simplemente puede fusionar como una matriz con $ request.

solicitud de Laravel

B-II-actualizando:

Si la clave  y su valor (que es una matriz ) está en  y queremos modificar esa matriz , primero, tenemos que modificar la matriz en algún lugar y luego fusionar la matriz modificada con la solicitud actual.

solicitud de Laravel

Resultado:

solicitud de Laravel

Recent Post