laravelで上限・下限を設けた検索機能を実装したい
解決したいこと
商品管理ツールをlaravelで作成しているのですが、価格を上限下限を設けた方法で検索したいのですがうまく作動しません。
発生している問題・エラー
エラーなどは出ませんが、価格の検索が引っ掛からない。
該当するソースコード
product.blade.php
<div class="search">
<form action="{{ route('product') }}" method="GET">
@csrf
<!-- 検索フォーム -->
<div class="product_name.search">
<label for="product_name">{{ __('商品名') }}</label>
<input type="text" name="keyword" id="keyword" >
</div>
<div class="company_name.serch">
<label for="company_name">{{ __('メーカー') }}<span class="badge badge-danger ml-2">{{ __('必須') }}</span></label>
<select class="form-control" name="search" id="search">
<option>{{"メーカーを選択してください"}}</option>
@foreach ($companies as $company)
<option>{{ $company->company_name }}</option>
@endforeach
</select>
</div>
<div class="price.search">
<label for="price">{{ __('価格') }}</label>
<div class="jougen">
<p>{{ __('上限') }}</p>
<input type="number" name="jougen.price" id="jougen.price" >
</div>
<div class="kagen">
<p>{{ __('下限') }}</p>
<input type="number" name="kagen.price" id="kagen.price" >
</div>
</div>
productcontroller.php
public function showList(Request $request)
{
// 商品一覧画面表示/検索処理
$keyword = $request->input('keyword');
$search = $request->input('search');
$jougenprice = $request->input('jougen.price');
$kagenprice = $request->input('kagen.price');
$jougenstock = $request->input('jougen.stock');
$kagenstock = $request->input('kagen.stock');
$nonon = new Product();
// メーカーの検索部分の値挿入
$model = new Company();
$companies = $model ->getCompanyNameById();
$products = $nonon->search($keyword,$search,$jougenprice,$kagenprice,$jougenstock,$kagenstock);
return view('product', compact('products','keyword','companies','search','jougenprice','kagenprice'));
}
Product.php
public function search($keyword,$search,$jougenprice,$kagenprice)
{
// 検索処理
$products = DB::query();
$products= DB::table('products')
->join('companies','company_id','=','companies.id')
->select('products.*','companies.company_name');
if($keyword){
$products->where('product_name', 'LIKE', "%$keyword%");
}
if($search){
$products->where('company_name', 'LIKE', "%$search%");
}
// 確認していただきたいところ
if($jougenprice){
$products->where('price','>',$jougenprice);
}elseif($kagenprice){
$products->where('price','<',$kagenprice);
}
$product= $products->get();
return $product;
}