據我所知,symfony建議使用默認AppBundle(如本頁http://symfony.com/doc/current/best_practices/creating-the-project.html所述),但是因爲我的項目是由一些獨立的應用程序組成,所以我想把它們分成自己的包。Symfony 2:生成的包不會找到路由
我想在symfony2控制檯的幫助下生成一個bundle生成:bundle命令。目錄結構似乎全部到位,但我經常會收到一條錯誤消息,說明路由未定義,儘管我已經定義了它。
的例外,我得到:
request.ERROR:未捕獲的PHP異常的Symfony \分量\ HttpKernel \異常\ NotFoundHttpException:GET /你好/ somename 「 」在C「 未找到路線」:\ WAMP \ WWW \ symfony \ test \ app \ cache \ prod \ classes.php line 2480 {「exception」:「[object](Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException(code:0):No route found for \」GET/hello/somename \「在C:\ wamp \ www \ symfony \ test \ app \ cache \ prod \ classes.php:2480,Symfony \ Component \ Routing \ Exception \ ResourceNotFoundException(代碼:0):在C:\ wamp \ www \ symfony \ test \ app \ cache \ prod \ appProdUrlMatcher.php:35)「} []
這裏是設置:
的routing.yml:
my:
resource: "@MyBundle/Resources/config/routing.php"
prefix: /
app:
resource: "@AppBundle/Controller/"
type: annotation
routing.php:
use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\Route;
$collection = new RouteCollection();
$collection->add('my_homepage', new Route('/hello/{name}', array(
'_controller' => 'MyBundle:Default:index',
)));
return $collection;
MyBundle /控制器/ DefaultController.php
namespace MyBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class DefaultController extends Controller
{
public function indexAction($name)
{
return $this->render('MyBundle:Default:index.html.twig', array('name' => $name));
}
}
束也被適當地在AppKernel類註冊。
據我所知,調用mydomain.local/hello/somename應該做的伎倆,但它不會工作。
P.S.我也嘗試了註釋方法,但它也不會工作(我得到相同的結果)
P.S. 2我知道這是一個非常有問題的問題,但迄今爲止我找到的答案中沒有一個能夠幫助我解決這個問題。
P.S. 3默認AppBundle工作正常,使用類似的設置(但註釋代替)
太好了。這工作。沒有想到清除緩存(老實說,它並沒有引起我的注意,它正在使用prod環境,剛剛從SF開始......)。有關如何配置正確環境的任何快速提示?謝謝。 – mspir
標準版中的基本環境配置幾乎適用於所有基本用例。通常,我只爲單元和功能測試創建一個自定義測試環境。 – jobou