我遇到了URL規則互相覆蓋的問題。 的URL約定,我需要在我的項目如下:Yii url規則覆蓋彼此
test.com/Products/Decorations/ //for Catalog listings in that Category
test.com/Products/Decorations/Winter-Decorations/8 //for Product listings in that Catalog
test.com/Products/Decorations/8/christmas-tree-bell.html //for viewing exact products
我不是一個Yii的URL管理專家,我知道有一百萬更好的方法可以做到這一點,但我重寫規則如下:
'/<rootCategory>/<categoryName>/<id>' => 'catalogs/index',
'/<rootCategory>/<categoryName>/<catalogTitle>/<id>' => 'products/index',
'/<rootCategory>/<categoryName>/<id>/<url_slug>' => 'products/view',
現在發生了什麼,當規則按照這個順序時,查看產品的規則不起作用。我得到一個錯誤:
500 Trying to get property of non-object.
但是當我移動最後一個規則一個,就像這樣:
'/<rootCategory>/<categoryName>/<id>' => 'catalogs/index',
'/<rootCategory>/<categoryName>/<id>/<url_slug>' => 'products/view',
'/<rootCategory>/<categoryName>/<catalogTitle>/<id>' => 'products/index',
上市的所有產品在目錄中的規則不起作用拋出同樣的錯誤消息,但是查看產品的規則起作用。
非常感謝您的幫助。
非常感謝你,添加正則表達式的id幫助。我知道是什麼導致了這個錯誤,但不知道爲什麼這些規則搞亂了。從來不太瞭解正則表達式。 –