Estoy enviando datos a través del cartero en Laravel. Necesito mostrar el valor nulo si los datos no se insertan durante el envío (en respuesta JSON). Pero no mostró la imagen en respuesta. Necesito mostrar una respuesta de imagen también.
Mi código de tienda es
public function store(Request $request)
{
$screenshots = new Screenshots ;
$screenshots->user_id = $request->user_id;
$screenshots->name = $request->name;
$screenshots->size = $request->size;
if($request->hasFile('image')){
$fileNameExt = $request->file('image')->getClientOriginalName();
$fileName = pathinfo($fileNameExt, PATHINFO_FILENAME);
$fileExt = $request->file('image')->getClientOriginalExtension();
$fileNameToStore = $fileName.'.'.$fileExt;
$pathToStore = $request->image->storeAs('public/uploads/screenshots', $request->image->getClientOriginalName());
$screenshots->image = $fileNameToStore;
$screenshots->save();
};
$screenshots->save();
return $this->sendResponse($screenshots->toArray(), 'Command Send Successfully successfully.');
}
Da un valor nulo cuando cualquier campo está en blanco, pero si una imagen está en blanco, no recibí ninguna respuesta.
Para más claridad, vea la captura de pantalla adjunta
Obteniendo respuesta Sé como
{"success":true,"data":{"user_id":"2","name":null,"size":"3.4kb","updated_at":"2020-02-12 07:26:49","created_at":"2020-02-12 07:26:49","id":32},"message":"Command Send Successfully successfully."}
La respuesta que necesito si la imagen también está en blanco
{"success":true,"data":{"user_id":"2","name":null,"size":"3.4kb","image":"null","updated_at":"2020-02-12 07:26:49","created_at":"2020-02-12 07:26:49","id":32},"message":"Command Send Successfully successfully."}
2 respuestas
Utilice el siguiente método para agregar un conjunto nulo predeterminado
// establecer en su modelo Capturas de pantalla
protected $attributes = array(
'image' => '',
);
O
if($request->hasFile('image')){
$fileNameExt = $request->file('image')->getClientOriginalName();
$fileName = pathinfo($fileNameExt, PATHINFO_FILENAME);
$fileExt = $request->file('image')->getClientOriginalExtension();
$fileNameToStore = $fileName.'.'.$fileExt;
$pathToStore = $request->image->storeAs('public/uploads/screenshots', $request->image->getClientOriginalName());
$screenshots->image = $fileNameToStore;
$screenshots->save();
}else{
$screenshots->image = '';
}
En el modelo Screenshots.php, defina el valor predeterminado del atributo / propiedad si no se establece de la siguiente manera
class Screenshot extends Model {
protected $attributes = ['image' => null];
}
Preguntas relacionadas
Nuevas preguntas
php
PHP es un lenguaje de secuencias de comandos interpretado, dinámico, orientado a objetos y ampliamente utilizado, diseñado principalmente para el desarrollo web del lado del servidor. Se utiliza para preguntas sobre el lenguaje PHP.