【发布时间】:2014-02-06 00:43:11
【问题描述】:
就我搜索过的类似问题而言,我没有找到一个可以解决我的问题的问题。
这是 app/config/routing.yml 中的条目:
basym_address:
resource: "@BasymAddressBundle/Controller/"
type: annotation
prefix: /
这是对应的控制器:
namespace Basym\AddressBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
/**
* Class DefaultController
*
* @package Basym\AddressBundle\Controller
*
* @Route("/address")
*/
class DefaultController extends Controller
{
/**
* @Route("/{name}", defaults={"name" = "Christian Lauer"})
* @Method({"GET", "POST"})
* @Template()
*/
public function indexAction($name = "Christian Lauer")
{
return array('name');
}
}
这是引发异常的代码(来自 MenuBuilder):
$menu->addChild('Home', array('route' => 'address'));
这是应用程序/控制台路由器的输出:匹配/地址:
> php.exe app\console router:match /address
Route "basym_address_default_index" matches
[router] Route "basym_address_default_index"
Name basym_address_default_index
Path /address/{name}
Host ANY
Scheme ANY
Method GET|POST
Class Symfony\Component\Routing\Route
Defaults _controller: BasymAddressBundle:Default:index
name: Christian Lauer
Requirements
Options compiler_class: Symfony\Component\Routing\RouteCompiler
Path-Regex #^/address(?:/(?P<name>[^/]++))?$#s
调用 MenuBuilder 的树枝部分如下所示(第 19 行:
{{ knp_menu_render('BasymSystemBundle:MenuBuilder:mainMenu') }}
我在 kernel.root_dir/Resources/views/layout 中收到“在渲染模板期间引发了异常(“无法为命名路由“地址”生成 URL,因为这样的路由不存在。”) .html.twig 第 19 行”。为什么?
任何帮助表示赞赏。
【问题讨论】:
标签: php symfony routing annotations