From a75d79509866ccf8f01d7db15788878acf9f8004 Mon Sep 17 00:00:00 2001 From: Edward Yang Date: Wed, 15 Mar 2023 15:19:25 +0800 Subject: [PATCH] =?UTF-8?q?Refactor=20url=20link=20and=20label=20for=20bra?= =?UTF-8?q?nd=E3=80=81page=20and=20page=20category.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- beike/Models/Brand.php | 8 ++++++++ beike/Models/Page.php | 8 ++++++++ beike/Models/PageCategory.php | 8 ++++++++ themes/default/brand/list.blade.php | 2 +- 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/beike/Models/Brand.php b/beike/Models/Brand.php index 97a6d2c2..202596c6 100644 --- a/beike/Models/Brand.php +++ b/beike/Models/Brand.php @@ -24,4 +24,12 @@ class Brand extends Base { return $this->hasMany(Product::class); } + + public function getUrlAttribute() + { + $url = shop_route('brands.show', ['id' => $this->id]); + $filters = hook_filter('model.brand.url', ['url' => $url, 'brand' => $this]); + + return $filters['url'] ?? ''; + } } diff --git a/beike/Models/Page.php b/beike/Models/Page.php index c136c928..fe0caecd 100644 --- a/beike/Models/Page.php +++ b/beike/Models/Page.php @@ -46,4 +46,12 @@ class Page extends Base { return $this->belongsToMany(Product::class, PageProduct::class, 'page_id', 'product_id')->withTimestamps(); } + + public function getUrlAttribute() + { + $url = shop_route('pages.show', ['page' => $this]); + $filters = hook_filter('model.page.url', ['url' => $url, 'page' => $this]); + + return $filters['url'] ?? ''; + } } diff --git a/beike/Models/PageCategory.php b/beike/Models/PageCategory.php index 6505450a..1cda2999 100644 --- a/beike/Models/PageCategory.php +++ b/beike/Models/PageCategory.php @@ -48,4 +48,12 @@ class PageCategory extends Model { return $this->hasMany(Page::class, 'page_category_id'); } + + public function getUrlAttribute() + { + $url = shop_route('page_categories.show', ['page_category' => $this]); + $filters = hook_filter('model.page_category.url', ['url' => $url, 'page_category' => $this]); + + return $filters['url'] ?? ''; + } } diff --git a/themes/default/brand/list.blade.php b/themes/default/brand/list.blade.php index e2fea4e1..9650fdd1 100644 --- a/themes/default/brand/list.blade.php +++ b/themes/default/brand/list.blade.php @@ -23,7 +23,7 @@
@foreach ($brand as $item)