2016-04-22 28 views
0

我正在學習Symfony2製作測試程序。我遇到了一些關於symfony路由錯誤的錯誤。錯誤是:Symfony 2.7路由錯誤?

Class AppBundle\Controller\DefaultController does not exist in C:\projects\classic-symfony\src\AppBundle/Controller/ 

(這是從"C:\projects\classic-symfony\app/config\routing.yml"導入)。

當然我刪除了,所以寫了2行,DefaultController.phpC:\projects\classic-symfony\src\AppBundle/Controller/,並且部署了ToppageController.php而不是它。

ToppageController.php非常簡單,下面,

<?php 

namespace AppBundle\Controller; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

class ToppageController extends Controller 
{ 
    /** 
    * @Route("/") 
    */ 
    public function indexAction() 
    { 
     return $this->rendor('Toppage/index.html.twig');  
    } 
} 

爲什麼這個代碼不工作?這是路由問題?


4.23.2016 謝謝大家。我不在辦公室,所以下週會嘗試和回覆。


4.25.2016 我回復了新回答的問題。你能幫助解決這個問題嗎?

+2

return $ this-> render代替this-> rendor –

+2

You可能已經刪除了(改變了)'DefaultController',但它可能在'app/config/routing.yml'中被連接*應用程序。檢查該文件的內容。然後檢查[手動](http://symfony.com/doc/current/book/routing.html#including-external-routing-resources)。 – Yoshi

+0

感謝您的回覆。 – Hideaki

回答

1

您需要將routeapp/config/routing.yml刪除到此控制器。

之後,不要忘記清除緩存。在dev環境中,你可以運行:

php app/console cache:clear 

prod環境中,你需要添加參數:

php app/console cache:clear --env=prod 
0

謝謝您的答覆。

我寫的應用程序/配置/ routing.yml文件到以下

app: 
    resource: "@AppBundle/Controller/" 
    type:  annotation 

這似乎是指在的appbundle /控制器/源代碼註釋。 我試圖運行

php app/console cache:clear 

但是下面會顯示在控制檯上,

[Symfony\Component\Config\Exception\FileLoaderLoadException] 
Class AppBundle\Controller\DefaultController does not exist in C:\projects\classic-symfony\src\AppBundle/Controller/ (which is being imported from "C:\projects\classic-symfony\app/config\routing.yml"). 

[ReflectionException] 
Class AppBundle\Controller\DefaultController does not exist 

這意味着它不能清除緩存?

+0

我現在也有完全相同的問題 - 我不知道我得到了它 - 從我讀過的這個位的配置文件中,應該允許控制器在該指定的bundle下運行的任何子目錄下運行(運行S3.2.1? ) –

0

在您的目錄中搜索AppBundle並查找App Bundle仍在被引用的實例。擺脫那些可能在routing.yml/services.yml中的實例,然後運行
php bin/console cache:clear --env = prod