Php 我们如何使用具有多个参数的laravel URL?是否需要将每个参数指定为方法参数?Can';我们不能通过请求访问它们吗?

Php 我们如何使用具有多个参数的laravel URL?是否需要将每个参数指定为方法参数?Can';我们不能通过请求访问它们吗?,php,laravel,routing,url-routing,multiparameter,Php,Laravel,Routing,Url Routing,Multiparameter,目前,我正试图以这种方式使用具有多个参数的URL。 例如,我将使用以下模式在URL中传递员工ID、组ID和员工的当前状态。 mydomain.com/en/employee/benefit-status/1-1-enroll 我定义的路线如下: Route::get('{lang}/employee/benefit-status/{slug}', 'EmployeeBenefitController@create'); 在我的控制器方法中,我单独访问参数。 create($lang,$slug

目前,我正试图以这种方式使用具有多个参数的URL。 例如,我将使用以下模式在URL中传递员工ID、组ID和员工的当前状态。 mydomain.com/en/employee/benefit-status/1-1-enroll

我定义的路线如下:

Route::get('{lang}/employee/benefit-status/{slug}', 'EmployeeBenefitController@create');
在我的控制器方法中,我单独访问参数。
create($lang,$slug)

这条路走得很好。 当我尝试通过请求对象访问参数时:

创建(请求$Request)

路线也很好,但在这种情况下,当我尝试导航到任何其他页面时

e、 g.如果我单击带有此链接的菜单项“mydomain.com/en/candidates”

URL被弄乱了,看起来像这样:

http://hrm.test:8080/GET%20/en/employee/benefit-status/1_1_enroll%20HTTP/1.1Accept:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding:%20%20%20%20%20%20%20%20%20%20%20gzip,%20deflateAccept-Language:%20%20%20%20%20%20%20%20%20%20%20en-US,en;q=0.9Connection:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20keep-aliveContent-Length:%20%20%20%20%20%20%20%20%20%20%20%20Content-Type:%20%20%20%20%20%20%20%20%20%20%20%20%20%20Cookie:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20laravel_token=eyJpdiI6IktcL0tjd3REZnVoXC82c0lsTUZRUXp5Zz09IiwidmFsdWUiOiJyUlRBTU1ueUt5WHl0TUdSYURvMDRTaDFFN2ZwQ1RzTEl5Q2VQVjA5ODc3WEp3WkZBa2pudHkwOERjQzdsdFI5Y3k3c1hqMjMyOXJNeXdLK1VmZXVZSnhIYzF2MDM4ZDVld1JtMlBjU01XWDEzY3RyclBTcHFEQ0FIMmNpYWkrT1dIcDFLTHVTVFpxU3h3TE9QVXlCd1hCMXUyUzRVWDVHM2ZiNVFiQ1JrTmJXM292ZEVrVjBHVmZtaUZcLzV1U1lhMWdySk1pTXhwblcyY0Jxck1lK2lFOXFXb0plc2pCSTlLR083eGlPWXptN3hDMDEwZFlwbHF2clZ6dDQ4XC96ZzkiLCJtYWMiOiIyNzgxOGU4MGM1YzM1YjI1MTFkNzY1N2ZhZTg3Y2E4MDlmZDQwNTEyMjAwMjdjMTQxNjM5YzhjMDMwMzY1Yjk5In0%3D;%20XSRF-TOKEN=eyJpdiI6InNVRkUzeXB5ZVJaQTM5WmJxNmR1R2c9PSIsInZhbHVlIjoiN1dONmVuRU1QRytaQmR4bzZSR1dDVXJKRVptVTdzb0JwajNzMkNFRU1tVUJJc3EwMmpzMms4S3BoclFqbkJ1MCIsIm1hYyI6ImVmZDIxNDA1OGVlY2FmZDkxODg5ZTRkMzE0OWM2NTJlZjYyNjFhNDBmOTk2NzU1M2I0NWZlODM5OGZiMDcyNjgifQ%3D%3D;%20hrm_session=eyJpdiI6IjNjS2Vja1ZDVVpKUlU4YkxYdlwvbzNnPT0iLCJ2YWx1ZSI6IndCZ0VPZk9OXC9cL01SUGo5VEMwZVJEM0R5VnI0SDBLV1lVWldJemZkODVRRG1yTXpxeXBSdzc4ZUcyMzJ1VnlabiIsIm1hYyI6ImY1NWQ3MGFkYzZjNTljZjVmYzJhMWU5MjRkZjJiN2NhODk0ZTgxNjY3YWZmMjIzYzAzNDFlYWYyNzg0YmI2NjUifQ%3D%3DHost:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20hrm.test:8080Upgrade-Insecure-Requests:%201User-Agent:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/79.0.3945.117%20Safari/537.36Cookie:%20laravel_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjEsImNzcmYiOiJvSkwzTkVmUEtQZUVWNlhnWVZ4UnNIZm13U2wwcGFjVkNrb0ZQNGtDIiwiZXhwaXJ5IjoxNTc5MzYxMzA2fQ.x1ibu7gHOIMgD73fXs90EdtHnLMb5J4cbgg3uDVYc8s;%20XSRF-TOKEN=oJL3NEfPKPeEV6XgYVxRsHfmwSl0pacVCkoFP4kC;%20hrm_session=MxkRkbJhiLlByPZncb6JqL87ATK0MH8mDLHhKIGg/candidates

如果你这样写你的路线会更好

Route::get('{lang}/employee/benefit-status/{employeeID}/{GoupPlanID}/{status}', 'EmployeeBenefitController@create');
URL被弄乱了,可能是因为您没有通过提供错误的数据以正确的方式使用路由


我更喜欢在post请求中这样做,因为我猜您正在插入这些数据。

如何组装这些url?我正在尝试通过连接来组装它们。我实际上想减小url的大小,但不确定如何进行。我已更改了我的问题。我实际上需要这些数据来显示带有特定字段的表单。这些字段取决于上一个字段即将到来的数据。我通常使用模态窗口来处理这类事情,但我的领导告诉我不要使用模态。使用单独的视图。我认为我应该使用这种技术,因为一切都是乱七八糟的。那么,如果参数仅在一个通配符中,你如何触发该路由?我已根据建议更改了路由,但仍然面临相同的问题。谢谢问题已经解决。我只传递了
create(Request$Request)
在控制器方法中,通过分解请求的最后一段来检索参数。一旦我在方法中单独指定了参数,问题就解决了。我编辑了我的问题。这就是为什么。如果您有get请求,则不能使用request request。request request仅用于post请求。这就是我建议的原因我希望你能把它分开,这样在你的创建方法中,你可以一个接一个地轻松访问它。我希望我的回答能帮助你。你可以投票表决