【问题标题】:How to pass a variable as a route parameter when accessing the route in Laravel?在 Laravel 中访问路由时如何将变量作为路由参数传递?
【发布时间】:2023-03-07 11:11:01
【问题描述】:

这不起作用:

return redirect('/view-project-team/' . $projectRequest->id );

在这种情况下,将变量传递到路由中的正确方法是什么?

【问题讨论】:

  • 你得到的错误是什么?
  • 你应该命名路由,然后使用return redirect()->route('nameOfRoute', ['id' => 1]);
  • 正如@DerekPollard 所说,您可以生成命名路由的url。 Named Routes docs
  • 您如何以及在哪里命名路线?
  • 我做了这个Route::get('/view-project-team/{project_request_id}', 'SinglePageController@viewProjectTeam')->name('viewProjectTeam');和这个return redirect()->route('viewTeamProject', ['project_request_id' => $projectRequest->id ]);,但现在我得到一个500错误

标签: laravel route-parameters


【解决方案1】:

正如 cmets 中所说,您应该使用路线名称:

return redirect()->route('view.project.team', ['id' => $projectRequest->id]);

名称可以在您的路由器中定义:

Route::get('/view-project-team/{id}', 'YourController@yourHandler')->name('view.project.team');

注意:

  1. 路线名称中的点不是必需的(您可以给出任何名称)。
  2. 'id' in route() call 指的是 {id} in Route::get() call(名称必须匹配)。

【讨论】:

  • 当我实现这个时,我在重定向时得到一个 200 状态码。为什么会这样?
  • 我不知道为什么,但是这样调用route()方法总是返回200。如果你需要指定另一个代码,你可以将它作为第三个参数传递给route()调用.喜欢... ['id' => $projectRequest->id], 302);
猜你喜欢
  • 2015-03-16
  • 2014-01-06
  • 2020-02-05
  • 1970-01-01
  • 2020-01-23
  • 2017-07-06
  • 2018-06-20
  • 2017-07-05
  • 2019-03-03
相关资源
最近更新 更多