knplabs/rad-url-generation

此包已弃用且不再维护。未建议替代包。

只需自动完成所需的现有路由参数。

v2.1.0 2017-09-21 08:23 UTC

This package is auto-updated.

Last update: 2022-09-23 13:36:13 UTC


README

遗憾的是,我们决定不再维护此项目(查看原因)。如果您想将其他包标记为此包的替代品,请发送电子邮件至 hello@knplabs.com

快速应用程序开发:URL生成

只需自动完成所需的现有路由参数。

Build Status Scrutinizer Code Quality Latest Stable Version Total Downloads Latest Unstable Version License

官方维护者

安装

composer require knplabs/rad-url-generation ~2.0
class AppKernel
{
    function registerBundles()
    {
        $bundles = array(
            //...
            new Knp\Rad\UrlGeneration\Bundle\UrlGenerationBundle(),
            //...
        );

        //...

        return $bundles;
    }
}

用法

继续使用以前的URL生成方式,实现方面没有变化。唯一的变化是您不再重复当前的路由参数。

示例 1

当前路由

app_products_show:
    path: /shops/{shop}/products/{products}/

我的当前URL是 /shops/12/products/345/。我想再次构建相同的URL。如果它已经是我的当前路由,我应该重复路由参数吗?

不。

$router->generate('app_products_show');                                  // Returns /shops/12/products/345/
$router->generate('app_products_show', ['product' => 122]);              // Returns /shops/12/products/122/
$router->generate('app_products_show', ['shop' => 1]);                   // Returns /shops/1/products/345/
$router->generate('app_products_show', ['shop' => 1, 'product' => 122]); // Returns /shops/1/products/122/

示例 2

当前路由

app_products_show:
    path: /shops/{shop}/products/{products}/

当前 URL: /shops/1/products/122/

我想构建此URL

app_variant_show:
    path: /shops/{shop}/products/{products}/variants/{variant}/

我可以执行

$router->generate('app_variant_show', ['shop' => 1, 'product' => 122, 'variant' => 23]); // Returns /shops/1/products/122/variants/23/

但为什么我要重复已经存在的参数呢?

$router->generate('app_variant_show', ['variant' => 23]); // Returns /shops/1/products/122/variants/23/

兼容性

  • 路由服务: $container->get('router')->generate('app_products_show')
  • 控制器快捷方式: $this->generateUrl('app_products_show')$this->redirectToRoute('app_products_show')
  • Twig函数: path('app_products_show')url('app_products_show')
  • 所有其他使用Symfony路由器的情况。