Solicitud de Laravel: Fusionar sobre la marcha

[vc_row el_class=”blog-info”][vc_column][vc_single_image source=”featured_image” img_size=”full” style=”vc_box_rounded”][vc_empty_space height=”40px”][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text el_class=”font-weight-bold”]

Fusionar una solicitud de Laravel sobre la marcha

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

[/vc_column_text][vc_empty_space height=”40px”][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text]

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

[/vc_column_text][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row][vc_row el_class=”social-info”][vc_column width=”1/6″][/vc_column][vc_column width=”2/3″][vc_row_inner][vc_column_inner width=”1/2″][vc_column_text][social_share_button themes=’theme1′][/vc_column_text][/vc_column_inner][vc_column_inner el_class=”youtube-inner-col” width=”1/2″][vc_column_text][likebtn theme=”youtube” lang=”auto” show_like_label=”0″ white_label=”1″ alignment=”right”][/vc_column_text][/vc_column_inner][/vc_row_inner][vc_row_inner el_class=”social-info-inner”][vc_column_inner width=”1/4″][vc_single_image image=”921″][/vc_column_inner][vc_column_inner width=”3/4″][vc_column_text]

Diego Pacheco

Ingeniero en Sitemas, MBA (Babson College). Desarrollador PHP/Java/JavaScript. Fundador & CEO de EpicStudio. Entusiasta de las tecnologías web (JavaScript, Vue, Laravel, AWS, Docker) Viajes, Negocios, Surf y Growth.[/vc_column_text][asvc_list_item icon_fontawesome=”fa fa-calendar-o” icon_size=”14px”]Programar una reunión[/asvc_list_item][/vc_column_inner][/vc_row_inner][/vc_column][vc_column width=”1/6″][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]

Recent Post

[/vc_column_text][lvca_posts_carousel posts_query=”size:3|order_by:rand|post_type:post” image_linkable=”true” image_size=”full” taxonomy_chosen=”post_tag” display_title=”true” display_post_date=”true” display_summary=”true” autoplay_speed=”3000″ animation_speed=”300″ display_columns=”3″ scroll_columns=”3″ gutter=”3″ tablet_display_columns=”2″ tablet_scroll_columns=”2″ tablet_gutter=”3″ tablet_width=”800″ mobile_display_columns=”1″ mobile_scroll_columns=”1″ mobile_gutter=”3″ mobile_width=”480″][vc_empty_space height=”20px”][/vc_column][/vc_row]