通过Laravel路由传递多个参数,同时保持URL“干净”(不显示它们),可以使用路由的隐式绑定和命名路由的方式。
隐式绑定是指将路由参数与控制器方法的参数进行自动绑定,无需在路由中显式指定参数名称。在路由定义中,使用{参数名}
的形式来表示参数,并在控制器方法中声明相同名称的参数。例如:
Route::get('user/{id}/profile', 'UserController@showProfile');
在上述例子中,{id}
是一个参数,它将被绑定到UserController
控制器的showProfile
方法的参数中。
命名路由是指给路由定义一个名称,以便在代码中引用该路由。通过使用命名路由,可以在不暴露参数的情况下生成URL。在路由定义中,使用->name('路由名称')
来为路由指定名称。例如:
Route::get('user/{id}/profile', 'UserController@showProfile')->name('profile');
在上述例子中,路由被命名为profile
。
为了生成URL,可以使用route('路由名称', ['参数名' => '参数值'])
函数。例如:
$url = route('profile', ['id' => 1]);
上述代码将生成一个URL,其中参数id
的值为1。
综上所述,通过使用隐式绑定和命名路由,可以在Laravel中实现通过路由传递多个参数,同时保持URL“干净”的效果。
领取专属 10元无门槛券
手把手带您无忧上云