據我搜索了類似的問題,我沒有找到解決問題的方法。Symfony2註解無法爲指定路線生成URL
這是在應用程序/配置/ 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') }}
我得到無法生成URL「模板的渲染(在異常被拋出」對於指定的路由「地址」,因爲這樣的路由不存在。「)在kernel.root_dir/Resources/views/layout.html.twig第19行」。爲什麼?
任何幫助表示讚賞。