我正在学习 Symfony 2 但遇到一些问题。使用教程,我在routing.yml
内捆绑:
acme_demo_homepage:
path: /hello/{name}
defaults: { _controller: AcmeDemoBundle:Default:index }
random:
path: /random/{limit}
defaults: { _controller: AcmeDemoBundle:Random:index }
Eclipse 在其中显示了一个错误defaults
已声明并告诉我:
是出乎意料的。
我已经创建了控制器:
<?php
namespace Acme\DemoBundle\Controller;
use Symfony\Component\HttpFoundation\Response;
class RandomController
{
public function indexAction($limit)
{
return new Response('<html><body>Number: '.rand(1, $limit).'</body></html>');
}
}
但是当我尝试执行时localhost/app_dev.php/random/10
出现此错误:
路由文件“C:\xampp\htdocs\progetti\Symfony\src\Acme\DemoBundle/Resources/config/routing.yml”包含“acme_demo_homepage”不受支持的键:“random”。需要以下之一:“资源”、“类型”、“前缀”、“模式”、“路径”、“主机”、“方案”、“方法”、“默认值”、“要求”、“选项”、“条件” ”。
我认为这是一个缩进问题。来自 YAML 规范:
"在 YAML 块样式中,结构由缩进确定。
在
一般来说,缩进被定义为零个或多个空格字符
行的开头。为了保持可移植性,不得在缩进中使用制表符,因为不同的系统对制表符的处理方式不同。请注意,大多数现代编辑器可能会配置为按 Tab 键会插入适当数量的空格.
"
So:
acme_demo_homepage:
path: /hello/{name}
defaults: { _controller: AcmeDemoBundle:Default:index }
random:
path: /random/{limit}
defaults: { _controller: AcmeDemoBundle:Random:index }
或者,您可以在 PHP 中设置路由(这是我的偏好)。例如:
<?php
//src/Acme/DemoBundle/Resources/config/routing.php
use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\Route;
$collection = new RouteCollection();
# main route
$collection->add('_index', new Route('/dashboard/index/{page}/{year}/{month}', array(
'_controller' => 'AcmeDashboardBundle:Default:index',
'page' => 1,
'year' => date('Y'),
'month' => date('n'),
)));
return $collection;
//end of file
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)