![](/img/trans.png)
[英]Symfony2: LiipImagineBundle - Exception: Unable to generate a URL for the named route “_imagine_image_upload_thumbnail” as such route does not exist
[英]Symfony2 annotation Unable to generate a URL for the named route
就我搜索類似的問題而言,我沒有找到能解決我問題的方法。
這是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'));
這是來自應用程序/控制台路由器的輸出:match / 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.html中收到“在呈現模板期間拋出了異常(由於該路由不存在,因此無法為命名的路由“地址”生成URL。”)。第19行的小樹枝”。 為什么?
任何幫助表示贊賞。
只能使用指向功能的路由。 您只有一條工作路線。 它是/ address / {name}
/ address僅引用控制器類DefaultController
以下代碼將支持路由/地址:
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');
}
/**
* @Route("/")
* @Method({"GET", "POST"})
*/
public function anotherAction()
{
return new Response();
}
}
我認為您應該使用basym_address_default_index
作為路由名稱,而不是address
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.