diff --git a/app/Http/Requests/ContactRequest.php b/app/Http/Requests/ContactRequest.php new file mode 100644 index 00000000..91f6d4b4 --- /dev/null +++ b/app/Http/Requests/ContactRequest.php @@ -0,0 +1,30 @@ +'required|string|max:100|min:10' + ]; + } +} diff --git a/beike/Shop/Http/Controllers/CategoryController.php b/beike/Shop/Http/Controllers/CategoryController.php index 1efea7b6..38e4e1a6 100644 --- a/beike/Shop/Http/Controllers/CategoryController.php +++ b/beike/Shop/Http/Controllers/CategoryController.php @@ -4,10 +4,18 @@ namespace Beike\Shop\Http\Controllers; use Beike\Models\Category; use Beike\Models\Product; +use Beike\Shop\Http\Resources\CategoryItem; +use Beike\Shop\Repositories\CategoryRepo; use Illuminate\Http\Request; class CategoryController extends Controller { + public function index(Request $request) + { + $items = CategoryRepo::list(); + return CategoryItem::collection($items); + } + public function show(Request $request, Category $category) { $products = Product::query() diff --git a/beike/Shop/Http/Resources/CategoryItem.php b/beike/Shop/Http/Resources/CategoryItem.php new file mode 100644 index 00000000..affba529 --- /dev/null +++ b/beike/Shop/Http/Resources/CategoryItem.php @@ -0,0 +1,22 @@ + $this->id, + 'name' => $this->description->name ?? '' + ]; + } +} diff --git a/beike/Shop/Repositories/CategoryRepo.php b/beike/Shop/Repositories/CategoryRepo.php new file mode 100644 index 00000000..cfacaada --- /dev/null +++ b/beike/Shop/Repositories/CategoryRepo.php @@ -0,0 +1,63 @@ + + * @created 2022-06-16 17:45:41 + * @modified 2022-06-16 17:45:41 + */ + +namespace Beike\Shop\Repositories; + +use Beike\Models\Category; +use Illuminate\Database\Eloquent\Builder; +use Illuminate\Database\Eloquent\Collection; + +class CategoryRepo +{ + /** + * 获取产品分类列表 + * + * @param array $filter , keyword, a_name, b_name, category_page, per_page + * @return Builder[]|Collection + */ + public static function list(array $filter = []) + { + $keyword = $filter['keyword']??''; + $builder = Category::query()->with(['description']); + if ($keyword) { + // $builder->whereExists('name') + } + return $builder->get(); + } + + /** + * @param $categoryData + */ + public static function create($categoryData) + { + // Category::query()->create($categoryData); + $category = new Category(); + $category->parent_id = 12; + } + + public static function update(Category $category) + { + $category->update([ + + ]); + } + + public static function updateViewNumber() + { + + } + + public static function multipleUpdate() + { + + } +} + diff --git a/beike/Shop/Routes/shop.php b/beike/Shop/Routes/shop.php index b9372a36..8b500b75 100644 --- a/beike/Shop/Routes/shop.php +++ b/beike/Shop/Routes/shop.php @@ -10,6 +10,7 @@ Route::prefix('/') Route::get('carts', [Beike\Shop\Http\Controllers\CartController::class, 'store'])->name('carts.store'); + Route::get('categories', [Beike\Shop\Http\Controllers\CategoryController::class, 'index'])->name('categories.index'); Route::get('categories/{category}', [Beike\Shop\Http\Controllers\CategoryController::class, 'show'])->name('categories.show'); Route::get('products/{product}', [Beike\Shop\Http\Controllers\ProductController::class, 'show'])->name('products.show'); diff --git a/config/app.php b/config/app.php index c1bd8725..73b061af 100644 --- a/config/app.php +++ b/config/app.php @@ -175,8 +175,8 @@ return [ App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, - \Beike\Admin\Providers\AdminServiceProvider::class, - \Beike\Shop\Providers\ShopServiceProvider::class, + Beike\Admin\Providers\AdminServiceProvider::class, + Beike\Shop\Providers\ShopServiceProvider::class, ],