Ste*_*one 2 php eclipse symfony
我正在学习Symfony 2,但我遇到了一些问题.使用教程,我在routing.yml内部包中创建了这个路径:
acme_demo_homepage:
path: /hello/{name}
defaults: { _controller: AcmeDemoBundle:Default:index }
random:
path: /random/{limit}
defaults: { _controller: AcmeDemoBundle:Random:index }
Run Code Online (Sandbox Code Playgroud)
和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>');
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试执行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键导致插入适当数量的空格."
所以:
acme_demo_homepage:
path: /hello/{name}
defaults: { _controller: AcmeDemoBundle:Default:index }
random:
path: /random/{limit}
defaults: { _controller: AcmeDemoBundle:Random:index }
Run Code Online (Sandbox Code Playgroud)
或者,您可以在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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4521 次 |
| 最近记录: |