代码之家  ›  专栏  ›  技术社区  ›  Italo Rodrigo

拉雷维尔的路线是错误的

  •  1
  • Italo Rodrigo  · 技术社区  · 6 年前

    我不能这样做路线工程。。。

    public function profissionais(Request $request, $id){
        $profissionais = Vinculo::where('unidade_id', '=', $id)->get();
        $profissionais = $id;
        return view('relatorios.profissionais', compact('profissionais'));
    }
    

    我的表格:

    <form method="GET" action="{{route('relatorios.profissionais', 'id')}}">
        <select class="js-example-basic-single" name="id" required>
            @foreach($unidades as $unidade)
                <option value="{{$unidade->id}}">{{$unidade->descricao}}</option>
            @endforeach
        </select>
        <span class="input-group-btn">
            <button class="btn btn-primary" type="submit">Listar</button>
        </span>
    </form>
    

    网站.php:

    Route::get('/relatorios/profissionais/{id}', 'RelatorioController@profissionais')->name('relatorios.profissionais');
    

    /relatorios/profissionais/4 (4是ID)数字4将 $id

    但是uri是这样的: relatorios/profissionais/id?id=4

    有什么帮助吗?

    2 回复  |  直到 6 年前
        1
  •  4
  •   Devon Bessemer    6 年前

    route helper的第二个参数应该是参数的值,而不是键。

    {{route('relatorios.profissionais', 4)}}
    

    现在,因为您是从表单设置这个值,所以您需要使用请求输入而不是route参数,或者使用javascript在select元素的change事件上使用侦听器修改表单操作。

    /id 是因为 'id' 作为第二个论点。你的理由是 ?id=4


    你还覆盖了 $profissionais

        $profissionais = $id;
    
        2
  •  0
  •   Ammar Ali    6 年前

    你可以这样做:

    Route::get('/relatorios/profissionais/{id?}', 'RelatorioController@profissionais')->name('relatorios.profissionais');