Llamar a una función miembro getRealPath() en nulo

Llamar a una función miembro getRealPath() en nulo

Quería preguntar cómo puedo poner un mensaje de error si no hay un archivo cargado pero presionan el botón de carga. ¿Cómo puedo poner un mensaje de error si getRealPath está vacío?

public function importExcel()
    {
        if (empty(Input::file('import_file')->getRealPath())) {
            return back()->with('success','No file selected');
        }
        else {
        $path = Input::file('import_file')->getRealPath();
        $inserts = [];
        Excel::load($path,function($reader) use (&$inserts)
        {
            foreach ($reader->toArray() as $rows){
                foreach($rows as $row){
                    $inserts[] = ['biometrics' => $row['biometrics'], 'first_name' => $row['first_name'], 'last_name' => $row['last_name'], 'date' => $row['date'], 'emp_in' => $row['emp_in'], 'emp_out' => $row['emp_out']];
                }
            }
        });

        if (!empty($inserts)) {
            DB::table('attendances')->insert($inserts);
            return back()->with('success','Inserted Record successfully');                  
        }


        return back();
        }

    }
Mostrar la mejor respuesta

hacer una validación adecuada para su archivo

Puede configurar un mensaje de error como el siguiente

return redirigir()->atrás()->with('errores', 'Ningún archivo seleccionado');

Y luego muestra un mensaje de error en Blade como una mención en la documentación de Laravel. Almacena el mensaje en la sesión y puede mostrar fácilmente los mensajes de sesión en el archivo blade como se muestra a continuación

@if (count($errors) > 0)
    <!-- Form Error List -->
    <div class="alert alert-danger error">
        <strong>Whoops! Something went wrong!</strong>

        <br><br>

        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

Puede poner un si antes de llamar a la función getRealPath()

if( Input::file('import_file') ) {
    $path = Input::file('import_file')->getRealPath();
} else {
    return back()->withErrors(...);
}