【问题标题】:Missing argument 1 for MagazineController@edit()MagazineController@edit() 缺少参数 1
【发布时间】:2016-03-10 23:13:28
【问题描述】:

Laravel 4.2 项目

我在 MagazineController 中设置了一个带有 $id 的编辑函数。该方法如下所示:

public function edit($id)
{
    $magazine = Magazine::findOrFail($id);

    dd($magazine);
}

我还为此视图设置了路由,当我运行 php artisan routes 时可以看到。

路线打印为:magazine/{magazine}/edit

当我点击上面的 URL 时,它告诉我第一个参数丢失了。由于某种原因,通配符不会自动通过。路由是使用路由资源设置的。

【问题讨论】:

  • @AlexeyMezenin 编辑路径如下:GET|HEAD /magazine/{magazine}/edit
  • 当你说'通配符没有被自动传递'时,你的意思是 $id 的值没有被传递给函数吗?

标签: php laravel laravel-4 laravel-4.2


【解决方案1】:

{} 大括号内传递的值应与传递给控制器​​方法的编辑函数的参数相同。在您的情况下 {magazine} -> $magazine 还有一件事您需要检查是否正在定义与编辑具有相同模式的其他路线。

要调试 :: 只需使用单独的路由并测试代码。

!!快乐编码

【讨论】:

  • 嗨,我已经尝试将它们都设置为 $magazine 并且它也不起作用。
  • 您是否尝试在路线文件之上设置单独的路线..有时路线会被覆盖..将路线设置为 - Route::put('magazine/{magazine}/edit') ; - 在路由文件的开头。
【解决方案2】:

我实际上是通过手动将 Route::get() 添加到 Routes.php 文件中来实现的。由于某种原因,它在 Route::resource() 内部不起作用,但在它外部起作用。

感谢所有帮助过我的人!

【讨论】:

  • 它会起作用...告诉我你定义 Route::resource() 的方式。
猜你喜欢
  • 2014-01-10
  • 2020-12-13
  • 2022-01-16
  • 2017-10-05
  • 1970-01-01
  • 1970-01-01
  • 2014-06-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多