2017-09-05 58 views
0

我无法理解如何在Laravel中使用动态参数更改获取路由。 我必须动态地将公司名称作为路由参数的路线,沿着www.page.com/{name_of_company}在Laravel中更改动态获取路由参数

在我web.php东西线,路线是这样的:

Route::get('/{company_name}', ['uses' => 'Frontend\[email protected]', 'as' => 'CompanyShow']); 

我现在需要更改{company_name}变量,例如删除空格,更改某些字符等,所以我打算使用某种类型的str_replace函数,我只需要知道我必须将该函数应用于动态参数,以便使用URL中新“已清除”名称版本成功调用该参数。 我试图直接操作获取路线内的动态变量,我还试图用中间件,但我不知道该怎么做到底,所以我在这里提出的问题,并希望有人有一个想法如何做到这一点...

回答

1

尝试像this在你的中间件,可以替代这种方式

+0

我尝试添加你的控制器和中间件说,我能够改变一个请求参数参数,但它不会在URL头中更改?它需要在URL标题来更改主要是它不不...这是我的中间件代码,我得到了公司的ID,并希望将其更改为公司: COMPANY_NAME = UserMoreInfo ::这里('na_user_more_info.user_id ',request() - > segment(2)) - > pluck('company_name')[0]; $ request-> merge([ 'id'=> $ company_name ]); // $ request-> route() - > setParameter('id',$ company_name); return $ next($ request); – Benny

+0

试试这个:https://laravel.com/docs/5.4/routing#explicit-binding>自定义解决逻辑 – Quezler

+0

感谢@Quezler,这个工作了!我使用显式绑定将company_name转换为RouteServiceProvider类中的ID,然后将其作为ID转发到我的控制器类中! – Benny