簡體   English   中英

Yii2跳到其他URL路由,如果 <controller> / <action> 找不到

[英]Yii2 skip to other URL route if <controller>/<action> is not found

我有一個用於控制器操作的自定義URL路由,即:

['pattern'=>'<username>/<post_slug>', 'route'=>'post/view'],

輸入類似localhost/thisismyname/my-user-post將使用預期的usernamepost_slug參數調用post/view

此路由的問題是我所有其他控制器操作都不再起作用。 localhost/post/index將使用參數post作為usernameindex作為post_slug調用post/view

有沒有一種有效的方法可以優先使用<controller>/</action> URL,如果沒有上述的<controller>/<action> ,它將把<username>/<post_slug>參數傳遞給post/view URL路線?

我不想創建單獨的路由,例如site/<controller>/<action>也不想手動將每個控制器和操作作為路由添加到URL Manager中,因為兩者都是丑陋的解決方法。

您指定的規則非常含糊,因此幾乎所有路由都可以匹配它。

您可以編寫urlRule類並檢查是否為路由<username>/<post_slug>路由。

作為另一種解決方案,您可以將此規則放在urlManager的規則配置數組的末尾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM