如何修复laravel中缺少必需的参数

时间:2019-06-19 03:29:20

标签: laravel

昨晚我尝试并检查了几次,试图在我的路线,模型,控制器,数据库和视图中寻找“ konsuman”。 但我什么也没找到。正确的值为“ konsumen”,但在浏览器中运行后显示错误

ErrorException (E_ERROR)
Missing required parameters for [Route: konsumen.update]
[URI: konsumen/{konsuman}]. (View: D:\xampp\htdocs
\skh\resources\views\konsumen\edit.blade.php).

我多次检查以确保其“ konsumen”不是“ konsuman”,而是laravel出现上述错误。

我的代码中是否有任何错误,或者还有其他错误。附上我的完整作品。

konsuman shows in route list, actualy there is no konsuman. the true value is konsumen

laravel show error because can't find konsuman

这是我在路由,模型,控制器,数据库和视图中完整代码的link。 谢谢您给予的关注

5 个答案:

答案 0 :(得分:1)

您忘记为route('konsumen.update')添加参数。

应为route('konsumen.update', ['konsuman' => $id])

$id是您正在编辑的konsumen记录的ID。

答案 1 :(得分:0)

您忘了在kde_konsumen中写必填内容

$request->validate([
        'kde_konsumen',
        'nma_konsumen' => 'required',
        'alm_konsumen' => 'required',
        'tlp_konsumen' => 'required',
    ]);

$request->validate([
        'kde_konsumen' => 'required',
        'nma_konsumen' => 'required',
        'alm_konsumen' => 'required',
        'tlp_konsumen' => 'required',
    ]);

答案 2 :(得分:0)

尝试替换

中的表单操作标签值
  

edit.blade.php

<form action="{{ '/konsumen/'. $konsumen->kde_konsumen) }} " method="POST">

答案 3 :(得分:0)

这是在Laravel路径中使用resource的一个缺点。它确实创建了所有CURD路线,但是您需要遵循自己的标准。 因此,当您创建

 Route::resource('konsumen', 'KonsumenController');

这反过来生成了您可以在屏幕快照中看到的路线。 看一下update route,它需要一个参数。 因此,无论您使用konsumen.update路由是什么,都还需要传递参数konsuman。 就像这样

route('konsumen.update', ['konsuman' => <someValue>])

就像@PhucLam所说的

答案 4 :(得分:0)

您缺少一件事。在您的控制器中,您正在接受$konsumen模型对象。但是您没有定义$konsumen将如何转换为模型对象。因为从URL获得ID。

要解决此问题,您需要在RouteServiceProvide类中进行一些设置。下面是您需要在提供程序中添加的代码:-

public function boot()
{
    Route::model('konsumen', \App\Konsumen::class);

    parent::boot();
}

此后,您的代码将可用。