Как отобразить результат поиска по выпадающим спискам в laravel - PullRequest
0 голосов
/ 18 апреля 2020

У меня проблема с отображением результатов поиска при использовании нескольких раскрывающихся списков.

my Laravel Framework - 6.18.8

Это табличная структура.

id | имя | тип | ш c | f c | у c | s c |

Пользователь выбирает значение каждого поля выбора, и важно, чтобы пользователь ДОЛЖЕН выбрать значение столбца «W C».

Например. Пользователь выбирает ниже

  • 'type' в качестве значения w
  • 'w c' в качестве значения N1 (USER должен выбрать этот столбец)
  • 'f c 'как значение f02
  • ' y c 'как значение yc1
  • ' s c 'как значение Z03

Я хочу получить выше согласованного результата. Не могли бы вы научить меня, как написать правильную функцию поиска, пожалуйста?

ОБНОВЛЕНО (Текущий файл blade [Dear Makdous помогает мне])

search.blade. php

<form action="{{ route('search') }}" class="form-image-upload" method="POST" enctype="multipart/form-data">

    <div class="col-md-5">

                <strong>TYPE</strong>

                <select name="type" class="form-control">
                <option value="-" selected>-</option>
                <option value="j">j</option>
                <option value="w">w</option>
                </select>     

            </div>

            <div class="col-md-5">
                <strong>wc</strong>
                <select name="wc" class="form-control">
                <option value="N0" selected>0</option>
                <option value="N1">1</option>
                <option value="N2">2</option>
                <option value="N3">3</option>

                </select>              

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

                <strong>FC</strong>
                <select name="fc" class="form-control">
                <option value="0" selected>0</option>                   
                <option value="f01">f01</option>
                <option value="f02">f02</option>
                <option value="f03">f03</option>

                </select>              

            </div>

            <div class="col-md-5">

                <strong>YC</strong>
                <select name="yc" class="form-control">
                <option value="0" selected>0</option>                   
                <option value="yc1">yc1</option>
                <option value="yc2">yc2</option>

                </select>              

            </div>

            <div class="col-md-5">

                <strong>SC</strong>
                <select name="sc" class="form-control">
                <option value="Z01" selected>Z01</option>                   
                <option value="Z02" selected>Z02</option>
                <option value="Z03" selected>Z03</option>


                </select>              

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

            <br/>

            <button type="submit" class="btn btn-success">Search</button>

        </div>

    </div>


</form> 

Контроллер

public function order(Request $request)
    {

        $this->validate($request, [            
                'wc' => 'required'
                ]);

        $images = ImageGallery::where('type', 'like', '%')
            ->where('wc', 'like', '%')
            ->where('fc', 'like', '%')
            ->where('yc', 'like', '%')
            ->where('sc', 'like', '%')            
             $result = compact('images');

        return view('result',compact('result'));
    }       

WEB. php

// search section
Route::post('search', 'ImageGalleryController@order');
Route::get('search', 'ImageGalleryController@search');

ОБНОВЛЕНИЕ (Текущий код [Дорогой Макдоус помогает мне])

Контроллер

public function order(Request $request)
{
    $this->validate($request, [            
        'wc' => 'required'
    ]);      

    $images = ImageGallery::where(['type',$request->type],
        ['wc',$request->wc],
        ['fc',$request->fc],
        ['yc',$request->yc],
        ['sc',$request->sc])->get();              
    return view('search',compact('images'));
}  

1 Ответ

0 голосов
/ 18 апреля 2020

Поскольку вы помещаете name в каждый выпадающий блок в файле представления, вы можете получить к ним доступ следующим образом:

$data = $request->all();
$images = ImageGallery::where([['type',$request->$data['type']],
            ['wc',$request->$data['wc']],
            ['fc',$request->$data['fc']],
            ['yc',$request->$data['yc']],
            ['sc',$request->$data['sc']]])->get();
...