Php Symfony 2在“创建页面”教程中未看到控制器的更新输出
我目前正在学习教程,但在创建新的Php Symfony 2在“创建页面”教程中未看到控制器的更新输出,php,http,symfony,url-routing,yaml,Php,Http,Symfony,Url Routing,Yaml,我目前正在学习教程,但在创建新的AcmeHelloBundle时,我似乎遇到了一些奇怪的缓存或路由问题 My Acme\HelloBundlerouting.yml具有以下功能: acme_hello_homepage: pattern: /hi/{name} defaults: { _controller: AcmeHelloBundle:Default:index } ..根据本教程,我的HelloController设置如下: <?php // src/Acme/
AcmeHelloBundle
时,我似乎遇到了一些奇怪的缓存或路由问题
My Acme\HelloBundlerouting.yml
具有以下功能:
acme_hello_homepage:
pattern: /hi/{name}
defaults: { _controller: AcmeHelloBundle:Default:index }
..根据本教程,我的HelloController
设置如下:
<?php
// src/Acme/HelloBundle/Controller/HelloController.php
namespace Acme\HelloBundle\Controller;
use Symfony\Component\HttpFoundation\Response;
class HelloController
{
public function indexAction($name)
{
return new Response('<html><body>Heyo '.$name.'!</body></html>');
}
}
从
router:debug
可以看到它指向AcmeHelloBundle:Default:index,这就是Acme\HelloBundle\DefaultController::indexAction(src/Acme/HelloBundle/DefaultController.php)
可能是在app/config/routing_dev.yml中定义的。您是否创建了新的AcmeHelloBundle?我认为默认情况下,Symfony2已经有了一个AcmeHelloBundle,这个包可能比你的包先被路由。不确定这是否是您的问题thoughapp/console路由器:调试| grephi@LCH是的,我根据SF2教程创建了
AcmeHelloBundle
。SF2附带了AcmeDemoBundle
,它的功能非常类似,是的,我认为第一个bundle的路由比我的要早。不过我已经重命名了原来的一个,所以我不知道为什么会发生这种情况。我已经用路由器:debug
的输出更新了这个问题。为什么旧的DemoBundle会在我的之前被淘汰?你认为这就是正在发生的事情吗?我应该指出,我是一个SF2新手,但我对PHP总体上非常熟悉。@crmpicco,看来您有权限问题;您必须为运行PHP的用户和您的用户(使用composer、更改文件等)授予对app/cache和app/logs的写访问权限。阅读并更新你的问题。非常感谢,这为我指出了问题所在。我只需要将它改为指向AcmeHelloBundle:Hello:index
,而不是AcmeHelloBundle:Default:index
。所以,正如所料,这是一个路由问题。太好了!,控制台非常方便。
[craig@crmpicco dev_ayrshireminis]$ app/console router:debug | grep hi
acme_hello_homepage ANY ANY ANY /hi/{name}
[craig@crmpicco dev_ayrshireminis]$ app/console router:debug acme_hello_homepage
[router] Route "acme_hello_homepage"
Name acme_hello_homepage
Path /hi/{name}
Host ANY
Scheme ANY
Method ANY
Class Symfony\Component\Routing\Route
Defaults _controller: AcmeHelloBundle:Default:index
Requirements
Options compiler_class: Symfony\Component\Routing\RouteCompiler
Path-Regex #^/hi/(?P<name>[^/]++)$#s