rodrigo ¿Cómo actualizar campos dinamicos de entrada en laravel?

rodrigo Publicada hace 4 meses | 0

¿Cómo actualizar campos dinamicos de entrada en laravel?

↑ Me gusta (0)

Poseo un formulario dentro del mismo hay una tabla dinámica donde a través de jquery puedo agregar o eliminar campos de entrada dinámicos. Esta tabla registra información sobre las herramientas que se utilizan para la fabricación de una pieza. El modelo principal es pieza y a su vez, dentro de la tabla participan otras dos entidades: tool e insert. Esta es mi tabla con campos dinamicos de entrada: `

Este es parte de mi metodo store (solo campos dinamicos): ` $addmore = $request->addmore; $arrTool = [];

            foreach($addmore as $add)
            {
                $insert = Insert::create([
                    'code_insert' => $add['code_insert'],
                    'quality'     => $add['quality']
                ]);  

                $tools = $insert->tools()->create([
                    'position'   => $add['position'],
                    'code_tool'  => $add['code_tool'],                   
                    'insert_id'  => $insert->id                            
                ]);                     
                    
                $arrTool[] = $tools->id;                  
            }               

` En la segunda prueba, estoy actualizando la pieza creada , luego estoy modificando algunos campos de propios de pieza y al mismo tiempo estoy modificando las herramientas asociadas.

¿Que pasó?

La pieza se actualizó, es decir, los campos propios de pieza se actualizaron correctamente. En el caso de las herramientas en lugar de actualizar las que ya se han creadas, sucedió lo contrario, se creó una nueva herramienta.

Este es parte de mi metodo update (solo campos dinamicos): ` $piece = Piece::with('tools')->findOrFail($id);

            $addmore = $request->addmore;
            $arrTool = [];


            foreach($addmore as $add)
            {
                $insert = Insert::where('id', $add)->updateOrCreate([
                    'code_insert' => $add['code_insert'],
                    'quality'     => $add['quality']
                ]);  

                $tools = $insert->tools()->updateOrCreate([
                    'position'   => $add['position'],
                    'code_tool'  => $add['code_tool'],                   
                    'insert_id'  => $insert->id                            
                ]);                     

                $arrTool[] = $tools->id;                  
            }    

` Por favor alguien que guie en la solucion, que tendria que modificar en mi método para que solo se actualicen las herramientas que ya se crearon, en mi caso se está creando una nueva herramienta.


Inicia sesión para responderle a rodrigo