diff --git a/composer.json b/composer.json index 299ddad..90e860a 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,6 @@ { "require": { "guzzlehttp/guzzle": "^7.0", - "symfony/var-dumper": "^7.0", "illuminate/database": "11.26.0.0", "ext-json": "*", "symfony/console": "^7.0", @@ -18,5 +17,8 @@ "psr-4": { "Krzysiej\\RyobiCrawler\\": "src/" } + }, + "require-dev": { + "symfony/var-dumper": "^7.1" } } diff --git a/composer.lock b/composer.lock index 184cebc..edcee65 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "4eef5feb5e2635d7fb7c69c8ed01a84c", + "content-hash": "a6920081bf40809334b8dda2da16752d", "packages": [ { "name": "brick/math", @@ -4123,16 +4123,16 @@ }, { "name": "symfony/var-dumper", - "version": "v7.1.5", + "version": "v7.1.8", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "e20e03889539fd4e4211e14d2179226c513c010d" + "reference": "7bb01a47b1b00428d32b5e7b4d3b2d1aa58d3db8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e20e03889539fd4e4211e14d2179226c513c010d", - "reference": "e20e03889539fd4e4211e14d2179226c513c010d", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/7bb01a47b1b00428d32b5e7b4d3b2d1aa58d3db8", + "reference": "7bb01a47b1b00428d32b5e7b4d3b2d1aa58d3db8", "shasum": "" }, "require": { @@ -4186,7 +4186,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.1.5" + "source": "https://github.com/symfony/var-dumper/tree/v7.1.8" }, "funding": [ { @@ -4202,7 +4202,7 @@ "type": "tidelift" } ], - "time": "2024-09-16T10:07:02+00:00" + "time": "2024-11-08T15:46:42+00:00" }, { "name": "symfony/var-exporter", diff --git a/src/Controller/IndexController.php b/src/Controller/IndexController.php index 71a6b45..0203711 100644 --- a/src/Controller/IndexController.php +++ b/src/Controller/IndexController.php @@ -11,7 +11,10 @@ final class IndexController extends BaseController #[Route('/', name: 'app_home')] public function __invoke(): Response { - $products = Product::with('price')->orderByDesc('starred')->orderByDesc('created_by')->get(); + $products = Product::with(['currentStock', 'price']) + ->orderByDesc('starred') + ->orderByDesc('created_by') + ->get(); return $this->render('productList.html.twig', ['products' => $products]); } } diff --git a/src/Models/Product.php b/src/Models/Product.php index 54fd545..4ddb836 100644 --- a/src/Models/Product.php +++ b/src/Models/Product.php @@ -44,6 +44,13 @@ class Product extends Model return $this->hasMany(Stock::class); } + public function currentStock(): HasOne + { + return $this->stock()->one()->ofMany()->withDefault(function (Stock $stock) { + $stock->stock = 0; + }); + } + public function toggleStarred(): self { $this->starred = !$this->starred; diff --git a/templates/productList.html.twig b/templates/productList.html.twig index b8f05df..fec8a01 100644 --- a/templates/productList.html.twig +++ b/templates/productList.html.twig @@ -7,7 +7,6 @@