我正在尝试在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铸件。