Yii urlManager规则上的可选参数

Yii urlManager规则上的可选参数,yii,parameters,yii-url-manager,Yii,Parameters,Yii Url Manager,我使用了Yii::app()->request->getParam(),这样我就可以有一个友好的url,比如/listings/professionals/1 我的控制器上有3个操作,它们获取参数$property\u id=Yii::app()->request->getParam('property\u id') 这两个动作便利设施和餐饮工作正常,但在最后一个动作照片中,var属性id得到了一个空值 我尝试删除照片规则中的第二个参数,一切正常。如何在不删除第二个参数的情况下解决此问题 以下是

我使用了
Yii::app()->request->getParam()
,这样我就可以有一个友好的url,比如
/listings/professionals/1

我的控制器上有3个操作,它们获取参数
$property\u id=Yii::app()->request->getParam('property\u id')

这两个动作
便利设施
餐饮
工作正常,但在最后一个动作
照片
中,var
属性id
得到了一个空值

我尝试删除照片规则中的第二个参数,一切正常。如何在不删除第二个参数的情况下解决此问题

以下是urlmanager规则:

'urlManager'=>array(
            'urlFormat'=>'path',
            'showScriptName' => false,
            'rules'=>array(
                'listings/amenities/<property_id>'=>'listings/amenities',
                'listings/meals/<property_id>'=>'listings/meals',
                'listings/photos/<property_id>/<gallery_id>'=>'listings/photos',
             ),
         ),

你试过使用两条规则吗?首先放置较长的规则:

'listings/photos/<property_id:\d+>/<gallery_id:\d+>' => 'listings/photos',
'listings/photos/<property_id:\d+>' => 'listings/photos',

最后,只需将“列表/照片/”=>“列表/照片”和“列表/照片/”=>“列表/照片”分开放置即可
'listings/photos/<property_id:\d+>/<gallery_id:\d+>' => 'listings/photos',
'listings/photos/<property_id:\d+>' => 'listings/photos',
public function actionPhotos($propertyId, $galleryId = null) {