1
0
mirror of https://github.com/robonen/metr.git synced 2026-03-20 02:44:42 +00:00

Image uploading

This commit is contained in:
2022-06-01 00:23:05 +07:00
parent fe2e5d316c
commit 675b692c81
27 changed files with 451 additions and 15 deletions

View File

@@ -7,6 +7,7 @@ use App\Http\Requests\StoreOfferRequest;
use App\Http\Requests\UpdateOfferRequest;
use App\Http\Resources\OfferResource;
use App\Models\Offer;
use App\Models\OfferPhoto;
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
class OfferController extends Controller
@@ -14,11 +15,17 @@ class OfferController extends Controller
/**
* Display a listing of the resource.
*
* @param \App\Filters\OfferFilter $filters
* @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection
*/
public function index(OfferFilter $filters): AnonymousResourceCollection
{
return OfferResource::collection(Offer::filter($filters)->get());
return OfferResource::collection(
Offer::filter($filters)
->latest()
->with('images')
->get()
);
}
/**
@@ -29,8 +36,7 @@ class OfferController extends Controller
*/
public function show(int $id): OfferResource
{
$offer = Offer::findOrFail($id);
return new OfferResource($offer);
return new OfferResource(Offer::with('images')->findOrFail($id));
}
/**
@@ -41,7 +47,19 @@ class OfferController extends Controller
*/
public function store(StoreOfferRequest $request): OfferResource
{
return new OfferResource(Offer::create($request->validated()));
$data = $request->validated();
$images = $data['images'];
$offer = auth()->user()->offers()->create($data);
foreach ($images as $image)
{
$offer_photo = OfferPhoto::findOrFail($image['id']);
$offer_photo->offer_id = $offer->id;
$offer_photo->save();
}
return new OfferResource($offer);
}
/**
@@ -68,4 +86,16 @@ class OfferController extends Controller
$offer = Offer::findOrFail($id);
$offer->delete();
}
public function allByUser(): AnonymousResourceCollection
{
return OfferResource::collection(
auth()
->user()
->offers()
->latest()
->with('images')
->get()
);
}
}