fixed search product

This commit is contained in:
Edward Yang 2022-08-12 17:32:37 +08:00
parent a6801ef182
commit 9d7ff6e116
7 changed files with 36 additions and 17 deletions

View File

@ -13,7 +13,7 @@ namespace Beike\Repositories;
use Beike\Models\Product;
use Illuminate\Database\Eloquent\Builder;
use Beike\Shop\Http\Resources\ProductList;
use Beike\Shop\Http\Resources\ProductSimple;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\HigherOrderBuilderProxy;
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
@ -43,8 +43,7 @@ class ProductRepo
{
$builder = self::getBuilder(['category_id' => $categoryId]);
$products = $builder->with('inCurrentWishlist')->get();
$items = ProductList::collection($products);
return $items;
return ProductSimple::collection($products);
}
@ -57,7 +56,7 @@ class ProductRepo
{
$builder = self::getBuilder(['product_ids' => $productIds])->whereHas('master_sku');
$products = $builder->with('inCurrentWishlist')->get();
return ProductList::collection($products);
return ProductSimple::collection($products);
}

View File

@ -2,9 +2,9 @@
namespace Beike\Shop\Http\Controllers;
use Beike\Repositories\BrandRepo;
use Beike\Shop\Http\Resources\ProductList;
use Illuminate\Http\Request;
use Beike\Repositories\BrandRepo;
use Beike\Shop\Http\Resources\ProductSimple;
class BrandController extends Controller
{
@ -23,7 +23,7 @@ class BrandController extends Controller
$products = BrandRepo::find($id)->products()->with('inCurrentWishlist')->paginate(20);
$data = [
'products' => ProductList::collection($products)->jsonSerialize(),
'products' => ProductSimple::collection($products)->jsonSerialize(),
];
return view('brand/info', $data);

View File

@ -3,10 +3,9 @@
namespace Beike\Shop\Http\Controllers;
use Beike\Models\Category;
use Beike\Repositories\CategoryRepo;
use Beike\Repositories\ProductRepo;
use Beike\Shop\Http\Resources\ProductList;
use Illuminate\Http\Request;
use Beike\Repositories\ProductRepo;
use Beike\Repositories\CategoryRepo;
class CategoryController extends Controller
{

View File

@ -3,20 +3,40 @@
namespace Beike\Shop\Http\Controllers;
use Beike\Models\Product;
use Beike\Shop\Http\Resources\ProductSimple;
use Illuminate\Http\Request;
use Beike\Repositories\ProductRepo;
use Beike\Shop\Http\Resources\ProductDetail;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
class ProductController extends Controller
{
/**
* 产品详情页
* @param Request $request
* @param Product $product
* @return mixed
*/
public function show(Request $request, Product $product)
{
$product = ProductRepo::getProductDetail($product);
$data = [
'product' => (new ProductDetail($product))->jsonSerialize(),
];
return view('product', $data);
}
/**
* 通过关键字搜索产品
*
* @param Request $request
* @return AnonymousResourceCollection
*/
public function search(Request $request): AnonymousResourceCollection
{
$keyword = $request->get('keyword');
$products = ProductRepo::getBuilder(['name' => $keyword])->where('active', true)->paginate();
return ProductSimple::collection($products);
}
}

View File

@ -1,6 +1,6 @@
<?php
/**
* ProductList.php
* ProductSimple.php
*
* @copyright 2022 opencart.cn - All Rights Reserved
* @link http://www.guangdawangluo.com
@ -14,7 +14,7 @@ namespace Beike\Shop\Http\Resources;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class ProductList extends JsonResource
class ProductSimple extends JsonResource
{
/**
* 图片列表页Item

View File

@ -61,6 +61,7 @@ Route::prefix('/')
Route::get('pages/{page}', [PageController::class, 'show'])->name('pages.show');
Route::get('products/search', [ProductController::class, 'search'])->name('products.search');
Route::get('products/{product}', [ProductController::class, 'show'])->name('products.show');
Route::get('register', [RegisterController::class, 'index'])->name('register.index');

View File

@ -12,8 +12,8 @@
namespace Plugin\LatestProducts\Controllers;
use Beike\Repositories\ProductRepo;
use Beike\Shop\Http\Resources\ProductList;
use Beike\Shop\Http\Controllers\Controller;
use Beike\Shop\Http\Resources\ProductSimple;
class MenusController extends Controller
{
@ -31,7 +31,7 @@ class MenusController extends Controller
$products = ProductRepo::getBuilder()->whereHas('master_sku')->with('inCurrentWishlist')->orderByDesc('updated_at')->paginate(40);
$data = [
'products' => $products,
'items' => ProductList::collection($products)->jsonSerialize(),
'items' => ProductSimple::collection($products)->jsonSerialize(),
];
return view("LatestProducts::latest_products", $data);
}