diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index 12fcb81d..cf6a328f 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -5,10 +5,8 @@ use App\Models\Company; use Illuminate\Http\Request; -class CompanyController extends Controller -{ - public function store(Request $request) - { +class CompanyController extends Controller { + public function store(Request $request) { $company = Company::create([ 'name' => $request->name, ]); @@ -17,12 +15,10 @@ public function store(Request $request) return 'Success'; } - public function show(Company $company) - { + public function show(Company $company) { // TASK: retrieve the full URL to the uploaded photo file, using Spatie Media Library - $photo = '???'; + $photo = $company->getFirstMediaUrl('companies'); return view('companies.show', compact('company', 'photo')); } - } diff --git a/app/Http/Controllers/HouseController.php b/app/Http/Controllers/HouseController.php index c330f8aa..0ea342de 100644 --- a/app/Http/Controllers/HouseController.php +++ b/app/Http/Controllers/HouseController.php @@ -6,37 +6,35 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; -class HouseController extends Controller -{ - public function store(Request $request) - { +class HouseController extends Controller { + public function store(Request $request) { $filename = $request->file('photo')->store('houses'); House::create([ - 'name' => $request->name, + 'name' => $request->name, 'photo' => $filename, ]); return 'Success'; } - public function update(Request $request, House $house) - { + public function update(Request $request, House $house) { $filename = $request->file('photo')->store('houses'); // TASK: Delete the old file from the storage + Storage::delete($house->photo); $house->update([ - 'name' => $request->name, + 'name' => $request->name, 'photo' => $filename, ]); return 'Success'; } - public function download(House $house) - { + public function download(House $house) { // TASK: Return the $house->photo file from "storage/app/houses" folder // for download in browser + return Storage::download($house->photo); } } diff --git a/app/Http/Controllers/OfficeController.php b/app/Http/Controllers/OfficeController.php index fae443fa..32751cf8 100644 --- a/app/Http/Controllers/OfficeController.php +++ b/app/Http/Controllers/OfficeController.php @@ -5,26 +5,23 @@ use App\Models\Office; use Illuminate\Http\Request; -class OfficeController extends Controller -{ - public function store(Request $request) - { +class OfficeController extends Controller { + public function store(Request $request) { $filename = $request->file('photo')->getClientOriginalName(); // TASK: Upload the file "photo" so it would be written as // storage/app/public/offices/[original_filename] + $request->file('photo')->storeAs('offices', $filename, ['disk' => 'public']); Office::create([ - 'name' => $request->name, + 'name' => $request->name, 'photo' => $filename, ]); return 'Success'; } - public function show(Office $office) - { + public function show(Office $office) { return view('offices.show', compact('office')); } - } diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php index 95aed4f8..a1f6cc56 100644 --- a/app/Http/Controllers/ProjectController.php +++ b/app/Http/Controllers/ProjectController.php @@ -5,17 +5,16 @@ use App\Models\Project; use Illuminate\Http\Request; -class ProjectController extends Controller -{ - public function store(Request $request) - { +class ProjectController extends Controller { + public function store(Request $request) { $request->validate([ // TASK: Write the validation rule so "logo" file would be MAX 1 megabyte + 'logo' => ['max:1000'], ]); // TASK: change the below line so that $filename would contain only filename // The same filename as the original uploaded file - $filename = '???'; + $filename = $request->file('logo')->getClientOriginalName(); $request->file('logo')->storeAs('logos', $filename); Project::create([ diff --git a/app/Http/Controllers/ShopController.php b/app/Http/Controllers/ShopController.php index b2c485a3..5791bd55 100644 --- a/app/Http/Controllers/ShopController.php +++ b/app/Http/Controllers/ShopController.php @@ -5,16 +5,15 @@ use Illuminate\Http\Request; use Intervention\Image\Facades\Image; -class ShopController extends Controller -{ - public function store(Request $request) - { +class ShopController extends Controller { + public function store(Request $request) { $filename = $request->file('photo')->getClientOriginalName(); $request->file('photo')->storeAs('shops', $filename); // TASK: resize the uploaded image from /storage/app/shops/$filename // to size of 500x500 and store it as /storage/app/shops/resized-$filename // Use intervention/image package, it's already pre-installed for you + Image::make(storage_path('app/shops/' . $filename))->resize(500, 500)->save(storage_path('app/shops/resized-' . $filename)); return 'Success'; }