Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2批注无法为命名路由生成URL_Php_Symfony_Routing_Annotations - Fatal编程技术网

Php Symfony2批注无法为命名路由生成URL

Php Symfony2批注无法为命名路由生成URL,php,symfony,routing,annotations,Php,Symfony,Routing,Annotations,就我搜索过的类似问题而言,我没有找到一个能解决我问题的 这是app/config/routing.yml中的条目: basym_address: resource: "@BasymAddressBundle/Controller/" type: annotation prefix: / 这是相应的控制器: namespace Basym\AddressBundle\Controller; use Symfony\Bundle\FrameworkBundle

就我搜索过的类似问题而言,我没有找到一个能解决我问题的

这是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):

这是应用程序/控制台路由器的输出:匹配/地址:

> 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
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();
    }
}
我在第19行的kernel.root_dir/Resources/views/layout.html.twig中得到“在呈现模板期间引发了异常(“无法为命名路由“地址”生成URL,因为该路由不存在。”)”。为什么?


感谢您的帮助。

只能使用指向函数的路由。你只有一条工作路线。它是/address/{name}

/仅寻址对控制器类DefaultController的引用

以下代码将支持路由/地址:

> 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
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\u address\u default\u index
作为路线名称,而不是
address