du131642 2018-06-29 06:11
浏览 167

laravel 5.6将表单数据作为路由参数传递

I'm just starting to learn laravel 5.6, and im having a problem with passing data from form to route parameter. So i have this route:

Route::get('/tours/index/{province_id?}', 'TourController@index');

and here's my form:

<form method="GET" action="#">
                <div class="siem">
                    <i class="fas fa-compass"></i>
                    <input style="padding-left:5px" size="66" id="province_id" class="search" list="provinces" name="province_id" placeholder="Siem Reap, Sihanouk Ville...etc or click on location icon to let us locate you"
                    />
                    <datalist id="provinces">
                        @foreach($provinces as $province)
                            <option value="{{ $province->id }}">{{ $province->name }}</option>
                        @endforeach
                    </datalist>
                </div>
                <div class="tour">
                    <a onclick="searchProvince()" type="button" href="#">Find my tours</a>
                    <script>
                        function searchProvince(e){
                            // e.preventDefault();
                            let province_id = $("#province_id").val();
                            window.location.replace("/tours/index/" + province_id);
                        }
                    </script>
                    <i class="fas fa-search"></i>
                </div>
            </form>

right now, as a workaround, im just using jquery to replace url, and i know this is not a good practice. I have the following index method in my TourController:

public function index($province_id = null)
    {
            if($province_id != null){
                if(isset($_GET['sortBy']) == false){
                    $tours = Tour::with('latestTourImage')->where('province_id', $province_id)->get();
                    return view('tours.index', ['tours' => $tours, 'province_id' => $province_id, 'province' => Province::find($province_id)])->with('onGuest', '1');
                }
                else{
                    $tours = Tour::with('latestTourImage')->where('province_id', $province_id)->where('category', '=', $_GET['sortBy'])->get();
                    return view('tours.index', ['tours' => $tours, 'province_id' => $province_id, 'province' => Province::find($province_id)])->with('onGuest', '1');
                }
            }
            else{
                return redirect()->back();
            }

    }
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
    • ¥15 关于#hadoop#的问题
    • ¥15 (标签-Python|关键词-socket)
    • ¥15 keil里为什么main.c定义的函数在it.c调用不了
    • ¥50 切换TabTip键盘的输入法
    • ¥15 可否在不同线程中调用封装数据库操作的类
    • ¥15 微带串馈天线阵列每个阵元宽度计算
    • ¥15 keil的map文件中Image component sizes各项意思
    • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
    • ¥15 划分vlan后,链路不通了?