商品分类自动完成
This commit is contained in:
parent
290f85b4a3
commit
aa9871f1d9
|
|
@ -60,5 +60,24 @@ class CategoryRepo
|
|||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static function autocomplete($name)
|
||||
{
|
||||
$categories = Category::query()->with('description')
|
||||
->whereHas('description', function ($query) use ($name) {
|
||||
$query->where('name', 'like', "{$name}%");
|
||||
})->limit(10)->get();
|
||||
$results = [];
|
||||
foreach ($categories as $category) {
|
||||
$results[] = [
|
||||
'id' => $category->id,
|
||||
'name' => $category->description->name,
|
||||
'image' => $category->image,
|
||||
];
|
||||
}
|
||||
return $results;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -91,4 +91,21 @@ class ProductRepo
|
|||
{
|
||||
return self::getBuilder($data)->paginate($data['per_page'] ?? 20);
|
||||
}
|
||||
|
||||
public static function autocomplete($name)
|
||||
{
|
||||
$products = Product::query()->with('description')
|
||||
->whereHas('description', function ($query) use ($name) {
|
||||
$query->where('name', 'like', "{$name}%");
|
||||
})->limit(10)->get();
|
||||
$results = [];
|
||||
foreach ($products as $product) {
|
||||
$results[] = [
|
||||
'id' => $product->id,
|
||||
'name' => $product->description->name,
|
||||
'image' => $product->image,
|
||||
];
|
||||
}
|
||||
return $results;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,4 +26,11 @@ class CategoryController extends Controller
|
|||
|
||||
return view('category', $data);
|
||||
}
|
||||
|
||||
public function autocomplete(Request $request)
|
||||
{
|
||||
$categories = CategoryRepo::autocomplete($request->get('name') ?? '');
|
||||
|
||||
return json_success('获取成功!', $categories);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,4 +18,11 @@ class ProductController extends Controller
|
|||
|
||||
return view('product', $data);
|
||||
}
|
||||
|
||||
public function autocomplete(Request $request)
|
||||
{
|
||||
$products = ProductRepo::autocomplete($request->get('name') ?? '');
|
||||
|
||||
return json_success('获取成功!', $products);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,11 +31,14 @@ Route::prefix('/')
|
|||
Route::post('carts/select', [CartController::class, 'select'])->name('carts.select');
|
||||
Route::delete('carts/{cart}', [CartController::class, 'destroy'])->name('carts.destroy');
|
||||
|
||||
Route::get('categories/autocomplete', [CategoryController::class, 'autocomplete'])->name('categories.autocomplete');
|
||||
Route::get('categories', [CategoryController::class, 'index'])->name('categories.index');
|
||||
Route::get('categories/{category}', [CategoryController::class, 'show'])->name('categories.show');
|
||||
|
||||
Route::get('products/autocomplete', [ProductController::class, 'autocomplete'])->name('products.autocomplete');
|
||||
Route::get('products/{product}', [ProductController::class, 'show'])->name('products.show');
|
||||
|
||||
|
||||
Route::get('login', [LoginController::class, 'index'])->name('login.index');
|
||||
Route::post('login', [LoginController::class, 'store'])->name('login.store');
|
||||
Route::get('register', [RegisterController::class, 'index'])->name('register.index');
|
||||
|
|
|
|||
Loading…
Reference in New Issue