diff --git a/app/Filament/Admin/Resources/ProductCategories/Tables/ProductCategoriesTable.php b/app/Filament/Admin/Resources/ProductCategories/Tables/ProductCategoriesTable.php index 05f81dd..d03bcc4 100644 --- a/app/Filament/Admin/Resources/ProductCategories/Tables/ProductCategoriesTable.php +++ b/app/Filament/Admin/Resources/ProductCategories/Tables/ProductCategoriesTable.php @@ -18,14 +18,19 @@ class ProductCategoriesTable ->columns([ TextColumn::make('title') ->label(__('product_categories.title')) - ->formatStateUsing(fn ($state, $record) => $record->translate('title')) - ->searchable() - ->sortable(), + ->getStateUsing(fn ($record) => $record->translate('title')) + ->searchable(query: function ($query, $search) { + return $query->whereHas('translations', function ($q) use ($search) { + $q->where('field_name', 'title') + ->where('field_value', 'like', "%{$search}%") + ->where('language_code', app()->getLocale()); + }); + }), TextColumn::make('slug') ->label(__('product_categories.slug')) ->searchable(), TextColumn::make('parent.title') - ->formatStateUsing(fn ($state, $record) => $record->parent?->translate('title')) + ->getStateUsing(fn ($record) => $record->parent?->translate('title')) ->label(__('product_categories.parent')), TextColumn::make('sort_order') ->label(__('product_categories.sort_order')) diff --git a/app/Filament/Admin/Resources/Products/Tables/ProductsTable.php b/app/Filament/Admin/Resources/Products/Tables/ProductsTable.php index 76f2d8e..688d2df 100644 --- a/app/Filament/Admin/Resources/Products/Tables/ProductsTable.php +++ b/app/Filament/Admin/Resources/Products/Tables/ProductsTable.php @@ -18,12 +18,18 @@ class ProductsTable return $table ->columns([ ImageColumn::make('hero_image') - ->label(__('products.hero_image')), + ->label(__('products.hero_image')) + ->disk('public'), TextColumn::make('title') ->label(__('products.title')) - ->formatStateUsing(fn ($state, $record) => $record->translate('title')) - ->searchable() - ->sortable(), + ->getStateUsing(fn ($record) => $record->translate('title')) + ->searchable(query: function ($query, $search) { + return $query->whereHas('translations', function ($q) use ($search) { + $q->where('field_name', 'title') + ->where('field_value', 'like', "%{$search}%") + ->where('language_code', app()->getLocale()); + }); + }), TextColumn::make('type') ->label(__('products.type')) ->badge() @@ -38,7 +44,7 @@ class ProductsTable default => $state, }), TextColumn::make('category.title') - ->formatStateUsing(fn ($state, $record) => $record->category?->translate('title')) + ->getStateUsing(fn ($record) => $record->category?->translate('title')) ->label(__('products.category')), ToggleColumn::make('is_active') ->label(__('products.is_active')), diff --git a/resources/views/components/front/menu-item.blade.php b/resources/views/components/front/menu-item.blade.php index c007895..52d4acc 100644 --- a/resources/views/components/front/menu-item.blade.php +++ b/resources/views/components/front/menu-item.blade.php @@ -6,9 +6,11 @@ $categories = []; $services = []; + $featuredProducts = []; if($isMegaMenu) { $categories = \App\Models\ProductCategory::where('is_active', true)->orderBy('sort_order')->get(); - $services = \App\Models\Product::where('is_active', true)->orderBy('sort_order')->limit(10)->get(); + $services = \App\Models\Product::where('is_active', true)->where('type', 'service')->orderBy('sort_order')->limit(10)->get(); + $featuredProducts = \App\Models\Product::where('is_active', true)->where('type', '!=', 'service')->inRandomOrder()->limit(6)->get(); } @endphp @@ -18,37 +20,46 @@