首頁 >後端開發 >php教程 >Symfony2 Demo配置失败

Symfony2 Demo配置失败

WBOY
WBOY原創
2016-06-06 20:50:00913瀏覽

我想添加一个页面,访问链接为/hello

配置步骤如下:

1.在app/AppKernel.php文件中加入代码:

<code class="lang-php">public function registerBundles() {
$bundles[] = new Acme\HelloBundle\AcmeHelloBundle();
return $bundles;
}
</code>

2.app/config/routing.yml

<code class="lang-yml">acme_hello:
  resource: "@AcmeHelloBundle/Resources/config/routing.yml"
  prefix: /
</code>

3.src/Acme/HelloBundle/Resources/config/routing.yml

<code class="lang-yml">hello:
    pattern:  /hello/{name}
    defaults: { _controller: AcmeHelloBundle:Hello:index }
</code>

4.src/Acme/HelloBundle/Controller/HelloController.php

<code class="lang-php">namespace Acme\HelloBundle\Controller;

use Symfony\Component\HttpFoundation\Response;

class HelloController 
{
    public function indexAction()
    {
        return new Response("Hello World");
    }
}
</code>

我几乎按照文档的步骤来做了,但还是出现了一些问题:

<code>Cannot import resource "D:/xampp/htdocs/Symfony/app/config\routing.yml" from "D:/xampp/htdocs/Symfony/app/config/routing_dev.yml". (Unable to parse at line 2 (near "resource:"@AcmeHelloBundle/Resources/config/routing.yml"").) 
</code>

文档上写到执行一个命令行可以创建一个新的bundle,并在src/Acme目录下生成新的bundle目录,我的执行如下:

<code>D:\xampp\php>php d:\xampp\htdocs\Symfony\app\console --namespace=Acme/HelloBundle --format=yml
</code>

不见有任何效果,所以就自己手动创建了

回复内容:

我想添加一个页面,访问链接为/hello

配置步骤如下:

1.在app/AppKernel.php文件中加入代码:

<code class="lang-php">public function registerBundles() {
$bundles[] = new Acme\HelloBundle\AcmeHelloBundle();
return $bundles;
}
</code>

2.app/config/routing.yml

<code class="lang-yml">acme_hello:
  resource: "@AcmeHelloBundle/Resources/config/routing.yml"
  prefix: /
</code>

3.src/Acme/HelloBundle/Resources/config/routing.yml

<code class="lang-yml">hello:
    pattern:  /hello/{name}
    defaults: { _controller: AcmeHelloBundle:Hello:index }
</code>

4.src/Acme/HelloBundle/Controller/HelloController.php

<code class="lang-php">namespace Acme\HelloBundle\Controller;

use Symfony\Component\HttpFoundation\Response;

class HelloController 
{
    public function indexAction()
    {
        return new Response("Hello World");
    }
}
</code>

我几乎按照文档的步骤来做了,但还是出现了一些问题:

<code>Cannot import resource "D:/xampp/htdocs/Symfony/app/config\routing.yml" from "D:/xampp/htdocs/Symfony/app/config/routing_dev.yml". (Unable to parse at line 2 (near "resource:"@AcmeHelloBundle/Resources/config/routing.yml"").) 
</code>

文档上写到执行一个命令行可以创建一个新的bundle,并在src/Acme目录下生成新的bundle目录,我的执行如下:

<code>D:\xampp\php>php d:\xampp\htdocs\Symfony\app\console --namespace=Acme/HelloBundle --format=yml
</code>

不见有任何效果,所以就自己手动创建了

我曾经遇到过因为用tab导致yml解析错误的问题。第一个问题应该是文件格式不对。 第二个问题你光加namespace没用的。console里应该是create:bundle命令后面带namespace和format才好用。

从错误信息判断,应该是@AcmeHelloBundle/Resources/config/routing.yml这个文件里yaml语法不对,看看是不是缩进或者敲了非英文的空格之类的问题。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn