我有两个路由
Route::get('/fasilitas/{fasilitas_id}/{any}','Fasilitas_controller@detail_fasilitas');
Route::get('/fasilitas/get_kategori/{kf_id}','Fasilitas_controller@get_kategori');
但是当我访问第二个路由时,它总是获取第一个路由,为什么?如何解决?感谢你的帮助。
我有两个路由
Route::get('/fasilitas/{fasilitas_id}/{any}','Fasilitas_controller@detail_fasilitas');
Route::get('/fasilitas/get_kategori/{kf_id}','Fasilitas_controller@get_kategori');
/fasilitas/get_kategori
时,您将触发第一个路由,其中get_kategori
是{fasilitas_id}
。/fasilitas/get_kategori
。Route::get('/fasilitas/get_kategori/{kf_id}','Fasilitas_controller@get_kategori');
Route::get('/fasilitas/{fasilitas_id}/{any}','Fasilitas_controller@detail_fasilitas');
where
方法来约束路由参数的格式。 where
方法接受参数名称和定义参数约束的正则表达式:Route::get('/fasilitas/{fasilitas_id}/{any}','Fasilitas_controller@detail_fasilitas')->where(['fasilitas_id' => '[0-9]+', 'any' => '[0-9]+']);
Route::get('/fasilitas/get_kategori/{kf_id}','Fasilitas_controller@get_kategori')->where('kf_id' => '[0-9]+');
了解更多信息,请参阅正则表达式约束
另一种方法是通过定义名称路由来传递它。
Route::get('/fasilitas/{fasilitas_id}/{any}','Fasilitas_controller@detail_fasilitas')->name('fasilitas.example1');
<a href="{{ route('fasilitas.example1',['fasilitas_id'=>1,'any'=>2]) }}">
Route::get('/fasilitas/get_kategori/{kf_id}','Fasilitas_controller@get_kategori')->name('fasilitas.example2');
<a href="{{ route('fasilitas.example2',['kf_id'=>1]) }}">
第一条路线的第二个片段是通配符,这意味着它可以是任何内容。
当在浏览器中调用第二条路线时,第二个片段(/get_kategori/)会通过第一条路线的通配符。
改变路线顺序可能会解决问题。但最好的做法是更改路线名称。例如:
Route::get('/fasilitas/something_else/{fasilitas_id}/{any}','Fasilitas_controller@detail_fasilitas');
Route::get('/fasilitas/get_kategori/{kf_id}','Fasilitas_controller@get_kategori');
尝试使用名称。这样会更有效率。
设施!
也许您想要写的是facilities。
不过,我根据您的方法进行编写。
Route::get('/fasilitas/{fasilitas_id}/{any}','Fasilitas_controller@detail_fasilitas')->name('detail.fasilitas');
Route::get('/fasilitas/get_kategori/{kf_id}','Fasilitas_controller@get_kategori')->name('get.kategori');
有关详细信息,请参阅fasilitas。
<a href="{{ route('detail.fasilitas',$fasilitas_id,$any) }}">Detail Fasilitas</a>
对于单个参数:get.kategori
<a href="{{ route('get.kategori',$kf_id) }}">Get Kategori</a>
试一下。
让我知道它是否有效。
享受编程的乐趣。