Why are you storing a file with one time and saving the name with another time.
Jun 6, 2023
15
Level 4
why am I getting Undefined variable $files
hello I am trying to pull data from my database and display it on a table on my view
here is my code
The Controller
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\upload;
class FileController extends Controller
{
public function uploadIndex() {
$files = upload::where('family_id', $id)->get();
dd($files);
return view('profile')->with('files', $files);
}
public function uploadFile(Request $request)
{
$request -> validate ([
'file' => 'required|mimes:png,jpeg,pdf|max:2048',
]);
$fileModel = new upload;
if($request -> file()) {
$fileName = time(). '_'.$request -> file ->getClientOriginalName();
$filePath = $request -> file ('file') -> storeAs('uploads', $fileName, 'public');
$fileModel -> filename = time(). '_'. $request -> file -> getClientOriginalName();
$fileModel -> document = '/storage/' . $filePath;
$fileModel -> family_id = $request -> input('family_id');
$fileModel ->save();
return redirect()->route('profile', ['id' => $request->input('family_id')])
->with('success', 'File has been uploaded')
->with('file', $fileName);
}
}
}
the Route
Route::post('/upload', [FileController::class, 'uploadFile'])->name('uploadFile');
Route::get('upload', [FileController::class, 'uploadIndex']);
the View
@foreach ($files as $file)
<tr>
<td>{{ $file->filename }}</td>
<td></td>
<td></td>
<td></td>
</tr>
@endforeach
</tbody>
Please or to participate in this conversation.