据我所知,symfony建议使用默认的AppBundle(如本页http://symfony.com/doc/current/best_practices/creating-the-project.html所述),但由于我的项目由多个独立的应用程序组成,我想将它们分成自己的应用程序。捆绑。
我正在尝试使用symfony2 console generate:bundle命令生成一个包。目录结构似乎全部到位,但是我经常收到一条错误消息,说明路由没有定义,尽管我已经定义了它。
我得到的例外:
request.ERROR:未捕获的PHP异常Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException:“在C:\ wamp \ www \ symfony \ test \ app \ cache \ prod中找不到”GET / hello / somename“的路由\ classes.php第2480行{“exception”:“[object](Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException(code:0):在C:\ wamp \中找不到\”GET / hello / somename \“的路由www \ symfony \ test \ app \ cache \ prod \ classes.php:2480,Symfony \ Component \ Routing \ Exception \ ResourceNotFoundException(code:0):at 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使用类似的设置(但注释代替)
正常工作答案 0 :(得分:1)
调试消息显示您处于prod环境中。
您是否尝试过从dev环境访问路由:mydomain.local / app_dev.php / hello / somename或清除缓存?