[英]getParam() always returns null
我正在嘗試使用路由器從URL獲取項目ID。 假設這是我的URL: http://boardash.test/tasks/all/7 ,我想在控制器中獲取7。
我使用以下命令創建了一個路由器:
$router->add(
'/tasks/:action/{project}',
[
'controller' => 'tasks',
':action' => 1
]
);
並嘗試使用以下方式訪問它:
$this->dispatcher->getParam('project');
但是當我var_dump()
這個時,它返回null
我想念什么?
:action
占位符不正確。 嘗試這樣:
$router->add(
'/tasks/:action/{project}',
[
'controller' => 'tasks',
'action' => 1 // <-- Look here
]
);
更新:經過幾次測試后,當命名參數位於路由末尾時,似乎是混合數組/短語法中的錯誤。
這將按預期工作並返回正確的參數。
// Test url: /misc/4444444/view
$router->add('/misc/{project}/:action', ['controller' => 'misc', 'action' => 2])
但是,這不會為{project}
返回正確的值。 它返回“視圖”而不是“ 4444444”。
// Test url: /misc/view/4444444
$router->add('/misc/:action/{project}', ['controller' => 'misc', 'action' => 1])
docs中說明的語法: https : //docs.phalconphp.com/en/3.2/routing#defining-mixed-parameters
我將在稍后進行進一步調查,但是您可以同時考慮在github上提交問題。
臨時解決方案:在緊急情況下,您可以使用此替代方法。
$router->add('/:controller/:action/:params', ['controller' => 1, 'action' => 2, 'params' => 3])
// Test url: misc/view/test-1/test-2/test-3
$this->dispatcher->getParams() // array of all
$this->dispatcher->getParam(0) // test-1
$this->dispatcher->getParam(1) // test-2
$this->dispatcher->getParam(3) // test-3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.