我创建了简单的控制器,设置路由,一切正常,直到我为第三个链接添加路由。然后我收到了错误
无法从“C:/ xampp / htdocs / Symfony / app / config \ routing.yml”导入资源“C:\ xampp \ htdocs \ Symfony \ src \ Acme \ Bundle \ WebBundle / Resources / config / routing.yml” ”
DefaultController.php
:
<?php
namespace Acme\Bundle\WebBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
class DefaultController extends Controller
{
public function indexAction()
{
return $this->render('AcmeWebBundle:Default:index.html.twig');
}
//* find a ride *//
public function findAction()
{
return $this->render('AcmeWebBundle:Default:find.html.twig');
}
//*book a ride *//
public function bookAction()
{
return $this->render('AcmeWebBundle:Default:book.html.twig');
}
}
这是master.html.twig
的一部分,即简单导航。
...
<div id="left1"><a href="{{ path('acme_web_homepage') }}"><strong>Home</strong></a>
</div>
<div id="left2">
</div>
<div id="left3"><a href="{{ path('find') }}"><strong>Find a ride</strong></a>
</div>
<div id="left4">
</div>
<div id="left5"><a href="{{ path('book') }}"><strong>Book a ride</strong></a>
</div>
和routing.yml
文件
acme_web_homepage:
pattern: /home
defaults: { _controller: AcmeWebBundle:Default:index }
find:
pattern: /find
defaults: { _controller: AcmeWebBundle:Default:find }
book:
pattern: /book
defaults: { _controller: AcmeWebBundle:Default:book }
如果我删除了图书路径的路线,一切正常。我哪里错了?
答案 0 :(得分:4)
Yaml基于缩进。您必须使用一些空格缩进book
的所有属性(我建议使用4个空格):
book:
pattern: /book
defaults: { _controller: AcmeWebBundle:Default:book }
有关the documentation中的Yaml格式的更多信息。
答案 1 :(得分:2)
yml文件必须缩进4个空格。
book:
pattern: /book
defaults: { _controller: AcmeWebBundle:Default:book }
答案 2 :(得分:0)
最后我弄清楚问题是什么:
我按下标签按钮就离开了空间。无论多么奇怪,这听起来我用@Wouter建议的4个空格取而代之,一切正常。
下次在使用yml文件时忘记选项卡。
答案 3 :(得分:0)
我注意到在导入过程中一些奇怪的Symfony行为。当在config / services.yaml文件中定义服务时,它们将正确加载,但是当我在config / services / services.yaml中对其进行配置时,(从config / services.yaml导入后)它们会开始显示错误
无法自动装配服务“ App \ Command *** \ XyzCommand”:方法“ __construct()”的参数“ $ env”是带有类型提示的“字符串”,应配置其
明确的价值。