танго una página que mediante AJAX usando JS hago una llamada un controlador y le envio los datos del fomulario (esto funciona correctamente, recibo bien los datos en el controlador)
$(".btn-submit").click(function(e){
e.preventDefault();
var codigo_promocion = $("input[name=codigo_promocion]").val();
var descuento = $("input[name=descuento]").val();
var descripcion = $("input[name=descripcion]").val();
$.ajax({
type:'PUT',
url:'/api/promociones/' + id_site_promocion ,
data: {
codigo_promocion: codigo_promocion,
descuento : descuento,
descripcion : descripcion,
},
success:function(data){
$('.btn-submit').prop('disabled', false);
},
error:function (data) {
$('.btn-submit').prop('disabled', false);
}
});
});
Танго El problema lo en el controlador, hago lo siguiente recibo los datos de la request y intento hacer un update меня esta dando ошибка, en las últimas lineas cuando hace el "обновляет" si por ejemplo el usuario никакой rellena Эль-Кампо descripción luego никакой se envia des del JS al controlador y al intentar hacer, обновляет меня da fallo.
/**
* Update the specified resource in storage
*
* @param \Illuminate\Http\Request $request
* @param $id
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$promocionExists = Promocion::find($id);
if (null === $promocionExists) {
return response('Promocion no válida',404);
}
$validator = Validator::make($request->all(), [
'codigo_promocion' => 'max:255',
'descuento' => 'max:255',
]);
if ($validator->fails()) {
return response(['errors' => $validator->messages()->all()],400);
}
Promocion::find($id)
->update([
'codigo_promocion' => $request->get('codigo_promocion'),
'descuento' => $request->get('descuento'),
'descripcion' => $request->get('descripcion'),
]);
return response('Promoción modificada correctamente',200);
}
Я предполагаю, что недостаток, - потому что не существует параметр в request, если это так, ты можешь манипулировать этим таким образом:
if(isset($request->get('descripcion'))){
'descripcion' => $request->get('descripcion'),
}else{
'descripcion' => '', // o null
}