【问题标题】:Laravel route with parameter causes 404带参数的Laravel路由导致404
【发布时间】:2018-05-17 16:31:14
【问题描述】:

我有一个路由设置,它在我的 Laravel 5.6 应用程序中抛出 404。

有问题的路线是:

Route::get('/project/{project_id}/issue/create', 'IssueController@create');

如果我删除 {project_id} 参数,视图会加载..但我需要能够传递此 ID,因为我将在此视图上使用它来创建分配给项目的新问题。所有其他路线都可以正常工作。

我的路由文件(web.php)如下所示:

Route::get('/projects', 'ProjectController@index');
Route::get('/project/{project_id}', 'ProjectController@show');
Route::get('/project/{project_id}/issue/{issue_id}', 'IssueController@show');
Route::get('/project/{project_id}/issue/create', 'IssueController@create');

我在 IssueController 文件中的创建函数是这样的:

public function create()
{
    return view('issue.create');
}

【问题讨论】:

  • 将 $project_id 作为参数放在 create 方法中就足够了

标签: php laravel-5


【解决方案1】:

您错过了作为 create 方法参数的 project_id。试试这个:

public function create($project_id)
{
    return view('issue.create');
}

并制作这样的路线:

Route::get('/project/issue/create/{project_id}','IssueController@create');

【讨论】:

  • 这很好,并且有效,但想知道您能否解释一下为什么我的原始路线仅通过将参数添加到 create 方法中不起作用?
  • 阅读文档我假设您不能使用您的符号将参数传递给控制器​​方法。要使用您的 url 表示法,您必须通过显式调用方法手动调用控制器方法。我的英语很糟糕,但是 laravel 有一个很棒的文档页面可以解决您的问题:link - 请参阅该部分的第二个代码示例。抱歉耽搁了一天。
猜你喜欢
  • 2014-07-12
  • 1970-01-01
  • 2021-12-23
  • 2019-03-28
  • 2020-11-15
  • 2017-07-10
  • 1970-01-01
  • 1970-01-01
  • 2015-04-07
相关资源
最近更新 更多