【Laravel】 검색 기능의 구현 ③ ~ multiple을 사용하여 복수 선택 가능하게 ~
5902 단어 라라벨
여기에서 만든 검색 기능을 풀다운에서 여러 선택하여 검색할 수 있도록 업데이트해 봅니다.
제작물
"매체"를 여러 개 선택하여 검색할 수 있습니다.
뷰 편집
이번 편집한 것은, 「매체」검색 기능의 select 요소만입니다.
select 요소의 name 속성을 배열로 하여 선택한 option 요소를 배열에서 받을 수 있습니다.
또한 select 요소에 multiple 속성을 추가합니다.
index.blade.php
<form action="{{ route('index') }}" method="GET">
//略
<label for="">媒体
//元のコード <select name="medium">
<select name="medium[]" multiple>
<option value="">全て</option>
@foreach ($media_list as $media_item)
<option value="{{ $media_item->getMedium() }}">{{ $media_item->getMedium() }}</option>
@endforeach
</select>
</label>
//略
</form>
루트 확인
루트는 이전에 만든 것과 같습니다.
web.php
Route::get('/', [TeachingMaterialController::class, 'index'])->name('index');
컨트롤러 편집
이번 편집한 것은 「매체」의 검색 부분만입니다.
TeachingMaterialController.php
class TeachingMaterialController extends Controller
{
public function index(Request $request)
{
//略
//元のコード
if(!empty($media)) {
$query->where('medium', '=', $medium);
}
//編集後のコード
if(!$media[0]==null) {
foreach($media as $medium) {
$query->orwhere('medium', '=', $medium);
}
}
//略
해설
option要素の「全て」
를 선택했을 경우는 value=""
와 같이 하늘의 데이터가 되어, $media의 내용은 하늘이었습니다. $media
의 내용은 이하와 같이 됩니다. 따라서 if 문의 !empty($media)
를 !$media[0]==null
라는 조건으로 변경했습니다. array (
0 => NULL,
)
참고 기사
Reference
이 문제에 관하여(【Laravel】 검색 기능의 구현 ③ ~ multiple을 사용하여 복수 선택 가능하게 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hinako_n/items/e3c402e3f1fb2da1a8e7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)