【问题标题】:Output route url with two variables using only ID仅使用 ID 的带有两个变量的输出路由 url
【发布时间】:2018-04-17 14:26:34
【问题描述】:

如果可能的话..如何做到这一点? Laravel 5.5

route('section.category.subcategory',$subcategory->id) 

必须输出(routes/web.php 也有 get:: 设置)

/section/{parent_slug}/{subcategory_slug}

我可以轻松做到

route('section.category.subcategory',[
                                     'subcategory_slug' => $subcategory->slug, 
                                     'parent_slug'=>$parent->slug
                                     ]
);

但我试图避免一直声明这些事情。

我认为模型中的 getRouteKeyName 将是第一个去的地方,但它只绑定到我能找到的一个变量。

RouteHandler 也不是做任何事情的地方,因为它读取 url,而不是输出它吗?

我假设在一些我不知道的文件中我必须设置这种逻辑。

if(requested_route is section.category.subcategory)){
   // get the parent_id of ID provided,
   // get parent's slug
   // build the url.
}

更好的是,我想我可以在拉取子类别列表时进行左连接,所以我有 $subcategory->parent_slug 而不是 $parent->slug。这边

route('section.category.subcategory',[$subcategory]) 

拥有所有需要使用的变量。

【问题讨论】:

    标签: php laravel laravel-5 laravel-routing laravel-5.5


    【解决方案1】:

    我认为这个助手将是一个不错的选择,因此您可以像这样创建网址:

    route('section.category.subcategory',build_category_parameters($subcategory)) 
    

    你可以像这样创建函数:

    function build_category_parameters($subcategory)
    {
       // here any logic that is needed
    
       // here return array something like this
       return [ 'subcategory_slug' => $subcategory->slug, 
                'parent_slug'=> $subcategory->parent->slug
              ];
    }
    

    如果您还没有帮助文件,您可以使用这种方式创建一个 Laravel - require php script in a service provider

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多