亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用路由 laravel 5.8 傳遞參數

使用路由 laravel 5.8 傳遞參數

PHP
慕容3067478 2022-01-24 10:01:22
我有兩條路線Route::get('/fasilitas/{fasilitas_id}/{any}','Fasilitas_controller@detail_fasilitas');Route::get('/fasilitas/get_kategori/{kf_id}','Fasilitas_controller@get_kategori');但是當我訪問第二條路線時,它總是獲得第一條路線,為什么?以及如何解決?謝謝你幫助我
查看完整描述

3 回答

?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

您可以使用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]) }}">


查看完整回答
反對 回復 2022-01-24
?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

擊中/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');


查看完整回答
反對 回復 2022-01-24
?
楊魅力

TA貢獻1811條經驗 獲得超6個贊

第一條路線的第二段是通配符,這意味著它可以是任何東西。


當在瀏覽器中調用第二個路由時,第二個段 (/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');


查看完整回答
反對 回復 2022-01-24
  • 3 回答
  • 0 關注
  • 190 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號