我正在從快速路由中間件創(chuàng)建路由器。// routes.phpreturn [ ['GET', '/1', ['ShowMe','demo']], ['GET', '/2', ShowMe::class],];如果我在 simpleDispatcher 的函數(shù)中手動(dòng)包含它,一切正常 -兩條路線都在工作: // $r->addRoute('GET', '/ddd', ['ShowMe','demo']); // $r->addRoute('GET', '/ddd', ShowMe::class);但是,如果我想從 routes.php 加載路由,我將使用這樣的代碼:foreach ($routes as $key => $route) { $r->addRoute($route[0], $route[1], [$route[2][0], $route[2][1]]); }這項(xiàng)工作非常適合這樣調(diào)用函數(shù)的路線:['GET', '/1', ['ShowMe','demo']],所以我修改(因?yàn)槲矣?2 種路由類型并且希望這個(gè)語(yǔ)法支持它們): $r->addRoute($route[0], $route[1], [implode(",", $route[2])]);它現(xiàn)在在兩種路線的類型中都不起作用:Warning: implode(): Invalid arguments passed in ...\index.php on line 69Fatal error: Uncaught RuntimeException: Invalid request handler: array
1 回答

米脂
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
你的foreach循環(huán)語(yǔ)法有錯(cuò)誤語(yǔ)法是foreach($arrayName as $key => $value)
foreach ($routes as $key => $route) {
$r->addRoute($routes[$key]); # or simply $r->addRoute($route);
}
其次,該implode()函數(shù)將數(shù)組作為字符串返回,我猜你不想要。所以簡(jiǎn)單地說(shuō):
$r->addRoute($route[0], $route[1], $route[2]);
- 1 回答
- 0 關(guān)注
- 223 瀏覽
添加回答
舉報(bào)
0/150
提交
取消