我正在尝试在Lumen中创建一个路由,它接受两个数组作为参数。所以,作为我在web.php
中的路线,我有以下内容:
$router->get('matrix/mul/{m1}/{m2}', ['uses' => 'MatrixController@multiplyMatrix']);
其中m1和m2应该是数组1和数组2.然后在控制器中我有以下内容:
public function multiplyMatrix(array $m1, array $m2) {
var_dump($m1);
var_dump($m2);die;
}
很简单,我只是想确保值作为数组到达那里。但是当我尝试使用http://localhost:8000/matrix/mul/m1[0,1]/m2[2,3]
和http://localhost:8000/matrix/mul/m1[]=0/m2[]=2
通过浏览器访问路由时,我得到了同样的错误:Argument 1 passed to App\Http\Controllers\MatrixController::multiplyMatrix() must be of the type array, string given
。
我知道我的问题可能与我正在构建url的方式有关。关于如何使这项工作的任何想法?
分析解答
你在路上传递的数组是json-encoded。只需在控制器中解码它们并用string
替换array
铸件。