Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony 2在“创建页面”教程中未看到控制器的更新输出_Php_Http_Symfony_Url Routing_Yaml - Fatal编程技术网

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\HelloBundle
routing.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