据我所知,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