首页 > 解决方案 > 函数目录::store() 的参数太少,通过了 1 个,预期正好有 2 个

问题描述

嘿,我正在制作一个控制器以从另一个表中获取当前 id,并且需要帮助,因为我得到了一些错误

函数 /directory/::store() 的参数太少,通过了 1 个,预期正好有 2 个

这是我的功能存储控制器

public function store(Request $request, $id)
{
    $this->validate($request, array(
        'A' => 'required|max:200',
        'B' => 'required|max:800'
    ));
    $try = new Me();
    $try->id_tableA = Auth::id();
    //$id = 1;
    $incase = Incase::find($id);
    $try->id_tableB = $incase->id;
    $try->A = $request->A;
    $try->B = $request->B;

    $try->save();

    return redirect()->route('controller.index');
}

所以我可以在我写的时候用自己的初始化值插入到我的表中$id = 1 但是当我找到 id 并创建参数时在函数参数上使用 $id 它会像我在标题中所说的那样变成错误,如果这个问题可以帮助我,你们能帮助我吗?很快修复

标签: phplaravelcontroller

解决方案


谢谢Chay22,当您在之前的回答中告诉我时,我有了一些想法,

所以我在我的 laravel 上编辑我的表单、控制器和路由

Route::post('directory/{incase}','ControllerController@store')->name('controller.store');

在我的表单上,我在路由中传递了第二个参数

{{ route('controller.store',$incase->id) }}

在我的控制器上,我将我的 ID 更改为 $incase

public function store(Request $request, $incase)

在我的路线上,我制作发布路线以将 id 检索到 db

Route::post('directory/{incase}','ControllerController@store')->name('controller.store');

推荐阅读