fixed search product
This commit is contained in:
parent
a6801ef182
commit
9d7ff6e116
|
|
@ -13,7 +13,7 @@ namespace Beike\Repositories;
|
||||||
|
|
||||||
use Beike\Models\Product;
|
use Beike\Models\Product;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
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\Collection;
|
||||||
use Illuminate\Database\Eloquent\HigherOrderBuilderProxy;
|
use Illuminate\Database\Eloquent\HigherOrderBuilderProxy;
|
||||||
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
|
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
|
||||||
|
|
@ -43,8 +43,7 @@ class ProductRepo
|
||||||
{
|
{
|
||||||
$builder = self::getBuilder(['category_id' => $categoryId]);
|
$builder = self::getBuilder(['category_id' => $categoryId]);
|
||||||
$products = $builder->with('inCurrentWishlist')->get();
|
$products = $builder->with('inCurrentWishlist')->get();
|
||||||
$items = ProductList::collection($products);
|
return ProductSimple::collection($products);
|
||||||
return $items;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -57,7 +56,7 @@ class ProductRepo
|
||||||
{
|
{
|
||||||
$builder = self::getBuilder(['product_ids' => $productIds])->whereHas('master_sku');
|
$builder = self::getBuilder(['product_ids' => $productIds])->whereHas('master_sku');
|
||||||
$products = $builder->with('inCurrentWishlist')->get();
|
$products = $builder->with('inCurrentWishlist')->get();
|
||||||
return ProductList::collection($products);
|
return ProductSimple::collection($products);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
namespace Beike\Shop\Http\Controllers;
|
namespace Beike\Shop\Http\Controllers;
|
||||||
|
|
||||||
use Beike\Repositories\BrandRepo;
|
|
||||||
use Beike\Shop\Http\Resources\ProductList;
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Beike\Repositories\BrandRepo;
|
||||||
|
use Beike\Shop\Http\Resources\ProductSimple;
|
||||||
|
|
||||||
class BrandController extends Controller
|
class BrandController extends Controller
|
||||||
{
|
{
|
||||||
|
|
@ -23,7 +23,7 @@ class BrandController extends Controller
|
||||||
$products = BrandRepo::find($id)->products()->with('inCurrentWishlist')->paginate(20);
|
$products = BrandRepo::find($id)->products()->with('inCurrentWishlist')->paginate(20);
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'products' => ProductList::collection($products)->jsonSerialize(),
|
'products' => ProductSimple::collection($products)->jsonSerialize(),
|
||||||
];
|
];
|
||||||
|
|
||||||
return view('brand/info', $data);
|
return view('brand/info', $data);
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,9 @@
|
||||||
namespace Beike\Shop\Http\Controllers;
|
namespace Beike\Shop\Http\Controllers;
|
||||||
|
|
||||||
use Beike\Models\Category;
|
use Beike\Models\Category;
|
||||||
use Beike\Repositories\CategoryRepo;
|
|
||||||
use Beike\Repositories\ProductRepo;
|
|
||||||
use Beike\Shop\Http\Resources\ProductList;
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Beike\Repositories\ProductRepo;
|
||||||
|
use Beike\Repositories\CategoryRepo;
|
||||||
|
|
||||||
class CategoryController extends Controller
|
class CategoryController extends Controller
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,20 +3,40 @@
|
||||||
namespace Beike\Shop\Http\Controllers;
|
namespace Beike\Shop\Http\Controllers;
|
||||||
|
|
||||||
use Beike\Models\Product;
|
use Beike\Models\Product;
|
||||||
|
use Beike\Shop\Http\Resources\ProductSimple;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
use Beike\Repositories\ProductRepo;
|
use Beike\Repositories\ProductRepo;
|
||||||
use Beike\Shop\Http\Resources\ProductDetail;
|
use Beike\Shop\Http\Resources\ProductDetail;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
|
||||||
|
|
||||||
class ProductController extends Controller
|
class ProductController extends Controller
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* 产品详情页
|
||||||
|
* @param Request $request
|
||||||
|
* @param Product $product
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
public function show(Request $request, Product $product)
|
public function show(Request $request, Product $product)
|
||||||
{
|
{
|
||||||
$product = ProductRepo::getProductDetail($product);
|
$product = ProductRepo::getProductDetail($product);
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'product' => (new ProductDetail($product))->jsonSerialize(),
|
'product' => (new ProductDetail($product))->jsonSerialize(),
|
||||||
];
|
];
|
||||||
|
|
||||||
return view('product', $data);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* ProductList.php
|
* ProductSimple.php
|
||||||
*
|
*
|
||||||
* @copyright 2022 opencart.cn - All Rights Reserved
|
* @copyright 2022 opencart.cn - All Rights Reserved
|
||||||
* @link http://www.guangdawangluo.com
|
* @link http://www.guangdawangluo.com
|
||||||
|
|
@ -14,7 +14,7 @@ namespace Beike\Shop\Http\Resources;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
class ProductList extends JsonResource
|
class ProductSimple extends JsonResource
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* 图片列表页Item
|
* 图片列表页Item
|
||||||
|
|
@ -61,6 +61,7 @@ Route::prefix('/')
|
||||||
|
|
||||||
Route::get('pages/{page}', [PageController::class, 'show'])->name('pages.show');
|
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('products/{product}', [ProductController::class, 'show'])->name('products.show');
|
||||||
|
|
||||||
Route::get('register', [RegisterController::class, 'index'])->name('register.index');
|
Route::get('register', [RegisterController::class, 'index'])->name('register.index');
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,8 @@
|
||||||
namespace Plugin\LatestProducts\Controllers;
|
namespace Plugin\LatestProducts\Controllers;
|
||||||
|
|
||||||
use Beike\Repositories\ProductRepo;
|
use Beike\Repositories\ProductRepo;
|
||||||
use Beike\Shop\Http\Resources\ProductList;
|
|
||||||
use Beike\Shop\Http\Controllers\Controller;
|
use Beike\Shop\Http\Controllers\Controller;
|
||||||
|
use Beike\Shop\Http\Resources\ProductSimple;
|
||||||
|
|
||||||
class MenusController extends Controller
|
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);
|
$products = ProductRepo::getBuilder()->whereHas('master_sku')->with('inCurrentWishlist')->orderByDesc('updated_at')->paginate(40);
|
||||||
$data = [
|
$data = [
|
||||||
'products' => $products,
|
'products' => $products,
|
||||||
'items' => ProductList::collection($products)->jsonSerialize(),
|
'items' => ProductSimple::collection($products)->jsonSerialize(),
|
||||||
];
|
];
|
||||||
return view("LatestProducts::latest_products", $data);
|
return view("LatestProducts::latest_products", $data);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue