存在我有這樣的路線:Laravel路由模型綁定:檢查路由參數模型
Route::get('{country}/{federalstate?}/{city?}', ['as' => 'regions.show', 'uses' => '[email protected]']);
接下來,我有一個模型,國家在這幾個國家。
我希望此路線只有在模型國家/地區中存在{country}時纔會生效。我想這樣做,因爲不要爲該路線使用前綴。
醜陋的方式將是一個正則表達式。醜陋的,因爲每次我添加一個新的國家模型時,我將不得不更新它。
那麼完成我想要做什麼的最好方法是什麼?
也許這可能有幫助 - >https://laravel.com/docs/5.4/routing#route-model-binding - 但我是一個初學者,我不能得到它的工作。
編輯:
這可能工作:
Route::get('{country?}/{federalstate?}/{city?}', ['as' => 'regions.show', 'uses' => '[email protected]'])->where([
'country' => 'germany|usa|canada'
]);
但是,正如我所說,我會每次添加一個新的國家數據庫的時間來改變正則表達式。
404是問題: -/myurl.com/somecontroller怎麼樣 - 我能想到的唯一的事情是,我設置了我作爲最後一條路線發佈的路線,但也不是很優雅.. – sugo
什麼當用戶輸入一個以不存在的國家/地區開頭的網址時,您是否希望發生? – jackel414
正如我所說的,我希望這條路線能夠活躍起來,當國家存在時(沒有前綴,{country}位於域根目錄中)。所以當有人訪問myurl.com/thiscountrydoesnotexist時,不應該應用該路線。 – sugo