>source

3개의 입력을 사용하여 검색을 시도하고 있습니다. 첫 번째 시나리오에서는 모든 입력을 사용하여 검색하면 결과를 반환하고, 두 번째 시나리오에서는 하나의 필드만 사용하여 검색하면 모든 레code를 반환합니다. 한 필드로 검색하면 특정 결과를 반환합니다.

public function multiSearch(Request $request){
        $search= $request->input('search');
        $search_1= $request->input('search_1');
        $search_2= $request->input('search_2');
        $cars= Car::query()
            ->where('price', 'LIKE', "%{$search}%")
            ->orWhere('model', 'LIKE', "%{$search_1}%")
            ->orWhere('transmission', 'LIKE', "%{$search_2}%")
        ->get();
        return view('car.car-multisearch', ['cars'=>$cars]);
    }

이것은 내 블레이드 code입니다.

<form type="get" action="{{url('/search-car')}}">  @csrf
     <div class="row">          <div class="col-md-4">            

<input type="text" name="search" placeholder="Price" />

</div> <div class="col-md-4">

<input type="text" name="search_1" placeholder="Model Year" />

</div> <div class="col-md-4">

<select name="search_2"> <option data-display="Transmission">Transmission</option> <option value="Automatic">Automatic</option> <option value="Manual">Manual</option> </select>

</div> <button type="submit" class="gauto-theme-btn">Find Car</button> </div></form>

  • 답변 # 1

    에 따라 where 문을 쿼리에 동적으로 추가할 수 있습니다. 예시:

    public function multiSearch(Request $request){
        $cars= Car::query();
        if ( $request->filled('search') ) {
            $cars->where('price', 'LIKE', "%{$request->input('search')}%");
        }
        if ( $request->filled('search_1') ) {
            $cars->orWhere('model', 'LIKE', "%{$request->input('search_1')}%");
        }
        if ( $request->filled('search_2') ) {
            $cars->orWhere('transmission', 'LIKE', "%{$request->input('search_2')}%");
        }
        return view('car.car-multisearch', ['cars'=> $cars->get() ]);
    }
    

    이 솔루션은 작업을 수행하지만 각 필터에 대해 더 많은 if 문을 추가해야 하기 때문에 좋지 않아 보입니다.)

  • 이전 aadb2c90243: idps 클라이언트 키/비밀이 제대로 구성되지 않았습니다.
  • 다음 python : PIP가 cytoolz 패키지를 빌드하지 못했습니다.