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."}
-1
ayushflitzip 12 feb. 2020 a las 10:38

2 respuestas

La mejor respuesta

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 = '';   
    }
0
rajesh 12 feb. 2020 a las 08:32

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];
}
0
Ahmar Arshad 12 feb. 2020 a las 08:28