@@ -71,8 +71,8 @@ protected function resolvePath(string $path, PathItem $pathItem):array
71
71
{
72
72
$ actions = [];
73
73
74
- $ routeData = Yii::createObject (RouteData::class, [$ pathItem , $ path , $ this ->config ->urlPrefixes ]);
75
74
foreach ($ pathItem ->getOperations () as $ method => $ operation ) {
75
+ $ routeData = Yii::createObject (RouteData::class, [$ path , $ pathItem , $ method , $ operation , $ this ->config ->urlPrefixes ]);
76
76
$ customRoute = null ;
77
77
if (isset ($ operation ->{CustomSpecAttr::ROUTE })) { # https://github.com/cebe/yii2-openapi/issues/144
78
78
$ customRoute = $ operation ->{CustomSpecAttr::ROUTE };
@@ -130,14 +130,16 @@ protected function prepareAction(
130
130
? Inflector::camel2id ($ this ->config ->controllerModelMap [$ modelClass ])
131
131
: Inflector::camel2id ($ modelClass );
132
132
} elseif (!empty ($ customRoute )) {
133
- $ controllerId = explode ('/ ' , $ customRoute )[0 ];
133
+ $ parts = explode ('/ ' , $ customRoute );
134
+ $ controllerId = $ parts [count ($ parts ) - 2 ];
134
135
} else {
135
136
$ controllerId = $ routeData ->controller ;
136
137
}
137
138
$ action = Inflector::camel2id ($ routeData ->action );
138
139
if (!empty ($ customRoute )) {
139
140
$ actionType = '' ;
140
- $ action = explode ('/ ' , $ customRoute )[1 ];
141
+ $ parts = explode ('/ ' , $ customRoute );
142
+ $ action = $ parts [count ($ parts ) - 1 ];
141
143
}
142
144
return Yii::createObject (RestAction::class, [
143
145
[
@@ -154,7 +156,8 @@ protected function prepareAction(
154
156
: null ,
155
157
'responseWrapper ' => $ responseWrapper ,
156
158
'prefix ' => $ routeData ->getPrefix (),
157
- 'prefixSettings ' => $ routeData ->getPrefixSettings ()
159
+ 'prefixSettings ' => $ routeData ->getPrefixSettings (),
160
+ 'xRoute ' => $ customRoute
158
161
],
159
162
]);
160
163
}
0 commit comments