我有两条路线
Route::get('/fasilitas/{fasilitas_id}/{any}','Fasilitas_controller@detail_fasilitas');
Route::get('/fasilitas/get_kategori/{kf_id}','Fasilitas_controller@get_kategori');
但是当我访问第二条路线时,它总是获取第一条路线,为什么? 以及如何解决它? 谢谢你帮助我
最佳答案
您可以在路由实例上使用 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]+');
了解更多信息Regular Expression Constraints
另一种方式传递它定义名称路由。
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]) }}">
关于php - 使用路由传递参数 laravel 5.8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58059565/