Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

337
Vistas
método laravel updateOrCreate

Tengo el siguiente código en mi método que estoy enviando a través de ajax al método del controlador:

 $newUser = \App\UserInfo::updateOrCreate([ 'user_id' => Auth::user()->id, 'about' => $request->get('about'), 'sec_email' => $request->get('sec_email'), 'gender' => $request->get("gender"), 'country' => $request->get('country'), 'dob' => $request->get('dob'), 'address' => $request->get('address'), 'mobile' => $request->get('cell_no') ]);

El dd($request->all()) me da:

 array:8 [ "_token" => "fHeEPfTvgMD3FpIBmmc6DmKXFaiuWKZEiOhg6twQ" "about" => "Some about me." "sec_email" => "example@gmail.com" "country" => "Priority highest" "gender" => "male" "dob" => "12/12/1990" "address" => "Some address" "cell_no" => "234234234" ]

que es perfecto

codigo jquery:

 $('#submit-editProfile-form').on('click', function() { var profileEditForm = $("#edit-user-profile"); var formData = $('#edit-user-profile').serialize(); profileEditForm.on('submit', function(e){ e.preventDefault(); $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); $.ajax({ url:'/freelance/edit-userProfile-info', type:'POST', data:formData, error: function (data) { console.log('Error'); } }); }).submit(); });

Ahora el problema es que tengo un registro en mi tabla, pero el código anterior crea otro, y el segundo es que crea multiplicar por dos registros en cada clic de botón (solicitud).

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

En su caso de uso, debe especificar un segundo parámetro. El primero indica las condiciones para una coincidencia y el segundo se usa para especificar qué campos actualizar.

 $newUser = \App\UserInfo::updateOrCreate([ //Add unique field combo to match here //For example, perhaps you only want one entry per user: 'user_id' => Auth::user()->id, ],[ 'about' => $request->get('about'), 'sec_email' => $request->get('sec_email'), 'gender' => $request->get("gender"), 'country' => $request->get('country'), 'dob' => $request->get('dob'), 'address' => $request->get('address'), 'mobile' => $request->get('cell_no') ]);

Aquí hay un ejemplo de la documentación: https://laravel.com/docs/5.4/eloquent

 // If there's a flight from Oakland to San Diego, set the price to $99. // If no matching model exists, create one. $flight = App\Flight::updateOrCreate( ['departure' => 'Oakland', 'destination' => 'San Diego'], ['price' => 99] );
about 4 years ago · Santiago Trujillo Denunciar

0

Eloquent tiene el método llamado updateOrCreate , que se puede usar como este ejemplo:

 <? $flight = UserInfo::updateOrCreate( [ 'user_id' => Auth::user()->id, ], [ 'about' => $request->get('about'), 'sec_email' => $request->get('sec_email'), 'gender' => $request->get("gender"), 'country' => $request->get('country'), 'dob' => $request->get('dob'), 'address' => $request->get('address'), 'mobile' => $request->get('cell_no') ], );
  1. Buscar por user_id podría ser su mejor manera de identificar sus filas.
  2. Crea o actualiza según los valores dados en la segunda matriz.

El siguiente es el signo del método.

 /** * Create or update a record matching the attributes, and fill it with values. * * @param array $attributes * @param array $values * @return \Illuminate\Database\Eloquent\Model */ public function updateOrCreate(array $attributes, array $values = [])
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda