19. 상품검색 까지
This commit is contained in:
parent
fa0d25c7c2
commit
786e6e283e
@ -4,16 +4,29 @@ namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Product;
|
||||
use APP\StockLog\StockService;
|
||||
use App\Services\StockService;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class ProductController extends Controller
|
||||
{
|
||||
public function index()
|
||||
public function index(Request $request)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'search' => ['nullable', 'string', 'max:255'],
|
||||
'sort' => ['nullable', Rule::in(['name', 'quantity'])],
|
||||
'order' => ['nullable', Rule::in(['asc', 'desc'])],
|
||||
'per_page' => ['nullable', 'integer', 'min:1', 'max:200'],
|
||||
]);
|
||||
|
||||
$search = $validated['search'] ?? null;
|
||||
$sort = $validated['sort'] ?? 'name';
|
||||
$order = $validated['order'] ?? 'asc';
|
||||
$perPage = $validated['per_page'] ?? 2;
|
||||
// dd($search);
|
||||
|
||||
$title = '상품목록';
|
||||
$products = Product::searchkeyword();
|
||||
$products = Product::searchkeyword($search, $sort, $order, $perPage);
|
||||
return view('product.list', compact('title', 'products'));
|
||||
}
|
||||
public function input()
|
||||
|
||||
@ -8,10 +8,17 @@ class Product extends Model
|
||||
{
|
||||
protected $table = 'products';
|
||||
protected $guarded = [];
|
||||
static public function searchkeyword()
|
||||
static public function searchkeyword($search = null, $sort = 'name', $order = 'asc', $perPage = 2)
|
||||
{
|
||||
$return = self::select('id', 'name', 'sku', 'price', 'quantity', 'created_at');
|
||||
return $return->paginate(1);
|
||||
$query = self::select('id', 'name', 'sku', 'price', 'quantity', 'created_at');
|
||||
if(!empty($search)) {
|
||||
$query->where(function ($q) use ($search) {
|
||||
$q->where('name', 'like', "%{$search}%")
|
||||
->orWhere('sku', 'like', "%{$search}%");
|
||||
});
|
||||
}
|
||||
$query->orderBy($sort, $order);
|
||||
return $query->paginate($perPage)->withQueryString();
|
||||
}
|
||||
|
||||
public function stockLogs()
|
||||
|
||||
@ -13,18 +13,18 @@
|
||||
|
||||
<form class="row g-3 mb-3" method="get">
|
||||
<div class="col-md-4">
|
||||
<input type="text" name="search" class="form-control" placeholder="상품명 또는 SKU 검색" value="">
|
||||
<input type="text" name="search" class="form-control" placeholder="상품명 또는 SKU 검색" value="{{ request('search') }}">
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<select name="sort" class="form-select">
|
||||
<option value="name">상품명</option>
|
||||
<option value="quantity">수량</option>
|
||||
<option value="name" {{ request('sort', 'name') === 'name' ? 'selected' : '' }}>상품명</option>
|
||||
<option value="quantity" {{ request('sort') === 'quantity' ? 'selected' : '' }}>수량</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<select name="order" class="form-select">
|
||||
<option value="asc">오름차순</option>
|
||||
<option value="desc">내림차순</option>
|
||||
<option value="asc" {{ request('order', 'asc') === 'asc' ? 'selected' : '' }}>오름차순</option>
|
||||
<option value="desc" {{ request('order') === 'desc' ? 'selected' : '' }}>내림차순</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user