【问题标题】:Too few arguments to function App\Http\Controllers\RakController::update(), 1 passed and exactly 2 expected函数 App\Http\Controllers\RakController::update() 的参数太少,通过了 1 个,预期正好有 2 个
【发布时间】:2020-01-29 08:35:00
【问题描述】:

我有一个错误提示:

函数 App\Http\Controllers\RakController::update() 的参数太少,通过了 1 个,预期正好有 2 个

这是我拥有的代码:

public function update(Request $request, $id)
{
    $data=Rak::find($id);
    $data->kode_rak=$request->get('kode_rak');
    $data->server=$request->get('server');
    $data->os=$request->get('os');
    $data->ip=$request->get('ip');
    $data->masa_berlaku=$request->get('masa_berlaku');
    $data->merek=$request->get('merek');
    $data->type=$request->get('type');
    $data->save();
    return redirect ('/d_rak');
}

这是整体预览:

我在这里错过了什么,感谢任何帮助

【问题讨论】:

  • 改用$data->update();
  • 也向我们展示您的表格
  • 更新功能似乎在您的控制器中,并且使用 $id 变量,您应该为该功能提供一个路由参数(如您的路由中的 {id} )。检查您的路线规则或将其包含在您的问题中,以便人们回答您。
  • 你能分享你的目标路线吗?

标签: php database laravel


【解决方案1】:

您可以跳过$id 参数,并使用$request 参数将其放入控制器:

public function update(Request $request)
{
    $id = $request->id;
    $data=Rak::find($id);
    $data->kode_rak=$request->get('kode_rak');
    $data->server=$request->get('server');
    $data->os=$request->get('os');
    $data->ip=$request->get('ip');
    $data->masa_berlaku=$request->get('masa_berlaku');
    $data->merek=$request->get('merek');
    $data->type=$request->get('type');
    $data->save();
    return redirect ('/d_rak');
}

【讨论】:

    【解决方案2】:

    尝试1:

    检查Used Class必须是Illuminate\Http\Request;

    尝试2:助手请求函数:

    public function update($id)
    {
        $data=Rak::find($id);
    
        $data->kode_rak = Request()->get('kode_rak');
        $data->server = Request()->get('server');
        $data->os = Request()->get('os');
        $data->ip = Request()->get('ip');
        $data->masa_berlaku = Request()->get('masa_berlaku');
        $data->merek = Request()->get('merek');
        $data->type = Request()->get('type');
    
        $data->save();
        return redirect('/d_rak');
    }
    

    如果它不起作用 在更新函数中打印func_get_args() 以查看您传递的参数

    【讨论】:

    • 你在哪里使用这个方法?在路由中或在控制器中的其他方法中
    【解决方案3】:

    检查您的网址 示例:

    http://{yourdomain}/update/{your_id}
    

    在 POST ROUTE 中。 如果不需要 {ID},则将其定义为不需要的参数,

    public function update(Request $request, $id="")
    {
        $data=Rak::find($id);
        $data->kode_rak=$request->get('kode_rak');
        $data->server=$request->get('server');
        $data->os=$request->get('os');
        //your code
    

    这将解决更新方法的参数错误。

    【讨论】:

      猜你喜欢
      • 2020-10-17
      • 2020-05-06
      • 2020-01-23
      • 2018-10-11
      • 2019-10-29
      • 2020-04-22
      • 2019-07-06
      • 2020-12-11
      • 2020-11-30
      相关资源
      最近更新 更多