@@ -47,7 +47,7 @@ public function prepareData($map)
47
47
{
48
48
$ queryData = [];
49
49
foreach ($ map as $ route => $ rules ) {
50
- $ this ->prepareQueryDataForRoute ($ queryData , $ route , $ rules );
50
+ $ queryData = $ this ->prepareQueryDataForRoute ($ queryData , $ route , $ rules );
51
51
}
52
52
53
53
return $ queryData ;
@@ -58,9 +58,12 @@ public function prepareData($map)
58
58
* @param array $data
59
59
* @param string $route
60
60
* @param array $rules
61
+ *
62
+ * @return mixed
63
+ *
61
64
* @throws CommandQueryDataException
62
65
*/
63
- protected function prepareQueryDataForRoute (& $ data , $ route , $ rules = [])
66
+ protected function prepareQueryDataForRoute ($ data , $ route , $ rules = [])
64
67
{
65
68
$ errors = [];
66
69
$ routeParts = explode (': ' , $ route );
@@ -73,13 +76,15 @@ protected function prepareQueryDataForRoute(&$data, $route, $rules = [])
73
76
}
74
77
}
75
78
if ($ value !== null ) {
76
- $ this ->setArrayElementByKey ($ data , $ route , $ value );
79
+ $ data = $ this ->setArrayElementByKey ($ data , $ route , $ value );
77
80
}
78
81
}
79
82
80
83
if (!empty ($ errors )) {
81
84
throw new CommandQueryDataException (implode (PHP_EOL , $ errors ));
82
85
}
86
+
87
+ return $ data ;
83
88
}
84
89
85
90
@@ -117,7 +122,7 @@ protected function getParamsListByKey($params, $routeParts = [])
117
122
{
118
123
$ values = [];
119
124
if (empty ($ routeParts )) {
120
- $ values[] = $ params ;
125
+ $ values = $ params ;
121
126
} else {
122
127
$ currentKeyPart = array_shift ($ routeParts );
123
128
if (
@@ -127,13 +132,23 @@ protected function getParamsListByKey($params, $routeParts = [])
127
132
$ currentKeyPart = (integer )$ currentKeyPart ;
128
133
}
129
134
if (isset ($ params [$ currentKeyPart ])) {
130
- foreach ($ this ->getParamsListByKey ($ params [$ currentKeyPart ], $ routeParts ) as $ valueKey => $ value ) {
131
- $ values [$ currentKeyPart . ': ' . $ valueKey ] = $ value ;
135
+ $ tmp = $ this ->getParamsListByKey ($ params [$ currentKeyPart ], $ routeParts );
136
+ if (is_array ($ tmp )) {
137
+ foreach ($ tmp as $ valueKey => $ value ) {
138
+ $ values [$ currentKeyPart . ': ' . $ valueKey ] = $ value ;
139
+ }
140
+ } else {
141
+ $ values [$ currentKeyPart ] = $ tmp ;
132
142
}
133
143
} elseif (is_array ($ params ) && $ currentKeyPart === '* ' ) {
134
144
foreach ($ params as $ paramKey => $ param ) {
135
- foreach ($ this ->getParamsListByKey ($ param , $ routeParts ) as $ valueKey => $ value ) {
136
- $ values [$ paramKey . ': ' . $ valueKey ] = $ value ;
145
+ $ tmp = $ this ->getParamsListByKey ($ param , $ routeParts );
146
+ if (is_array ($ tmp )) {
147
+ foreach ($ this ->getParamsListByKey ($ param , $ routeParts ) as $ valueKey => $ value ) {
148
+ $ values [$ paramKey . ': ' . $ valueKey ] = $ value ;
149
+ }
150
+ } else {
151
+ $ values [$ paramKey ] = $ tmp ;
137
152
}
138
153
}
139
154
} else {
@@ -156,9 +171,9 @@ protected function getParamsListByKey($params, $routeParts = [])
156
171
*
157
172
* @return array
158
173
*/
159
- protected function setArrayElementByKey (& $ array , $ setKey , $ setVal )
174
+ protected function setArrayElementByKey ($ array , $ setKey , $ setVal )
160
175
{
161
- $ link = $ array ;
176
+ $ link = & $ array ;
162
177
$ keyParts = explode (': ' , $ setKey );
163
178
foreach ($ keyParts as $ key ) {
164
179
if (
0 commit comments