我在业余时间一直在玩Docker和Symfony,试图与他们握手。我已将我的项目推向了可以启动Docker并访问Symfony欢迎屏幕的舞台...... huzzah!Symfony 2. Route似乎在CLI中工作,但在浏览器中始终为404's
我想到了这一点,它应该是简单的航行,所以试图开始添加一些路线/控制器等。所以我设置了一个基本的路线,最终将作为登录屏幕,但我似乎永远无法访问它在浏览器。
这就是说我可以看到,它匹配(并应尽可能我知道工作),当我运行app/console route:match /login
继承人我所编辑的各种文件的内容/从而增加远。
应用/配置/ routing.yml中
app:
resource: "@AppBundle/Resources/config/routing.xml"
routing.xml
<?xml version="1.0" encoding="UTF-8" ?>
<routes xmlns="http://symfony.com/schema/routing"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/routing
http://symfony.com/schema/routing/routing-1.0.xsd">
<route id="login" path="/login">
<default key="_controller">AppBundle:Login:__invoke</default>
</route>
应用/配置/ Services.yml
parameters:
# parameter_name: value
services:
# service_name:
# class: AppBundle\Directory\ClassName
# arguments: ["@another_service_name", "plain_value", "%parameter_name%"]
imports:
- { resource: ../../src/AppBundle/Resources/config/services.xml }
的services.xml
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<imports>
<import resource="controllers.xml"/>
</imports>
</container>
controllers.xml
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="controller.login" class="AppBundle\Controller\LoginController">
</service>
</services>
</container>
LoginController.php
<?php
namespace AppBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
class LoginController extends Controller
{
public function __invoke()
{
return new Response(
'<html><body>Huzzah!</body></html>'
);
}
}
不限帮助将不胜感激,因为在我看来,它应该工作,而不是我目前正在获得的404,有什么想法?
你有ACL吗?你可以抛出抛出的异常,并生成404?也许路线是好的,但是会引发'NOT_FOUND'错误,抛出异常将会提供更多线索。 –
将您的routing.xml中的'_controller'更改为您的控制器的服务ID:'controller.login'。 – Fracsi
@AlFoиceѫ请原谅我的无知,但什么是ACL? – cosmicsafari