Php 不断获取错误:内爆():更新数据时传递的参数无效

Php 不断获取错误:内爆():更新数据时传递的参数无效,php,laravel,implode,Php,Laravel,Implode,每当我试图将某些内容更新到数据中时,就会不断出现此错误。上一次没有发生太多,但在使用新的更新函数后,错误不断弹出,出于某种原因,它指向我输入的新函数,即使我在旧函数中更新 控制器: //update for user public function edit($id){ $object = user::find($id); return view('edit', compact('object')); } public functio

每当我试图将某些内容更新到数据中时,就会不断出现此错误。上一次没有发生太多,但在使用新的更新函数后,错误不断弹出,出于某种原因,它指向我输入的新函数,即使我在旧函数中更新

控制器:

//update for user
    public function edit($id){
        $object = user::find($id);

        return view('edit', compact('object'));

    }

    public function update(Request $request, $id){
        $object = user::find($id);
        $object->Name = $request->input('Name');
        $object->update();

        return redirect('/home');
    }


    //update for Schools table
    public function edit1($id){
      $object2 = school::find($id);
       return view('edit1', compact('object2'));

    }
    public function update1(Request $request, $id){
        $object2 = school::find($id);
        $test = array();
    $test['School'] = implode(' , ', $request->School);
    $test['SDate'] = implode(' , ', $request->SDate);
    $test['EDate'] = implode(' , ', $request->EDate);
        $object2->update($test);
        return redirect('/home');
    }

    //error start here after putting this whole thing in. (I tried putting it into another separate controller but the error still continues)
            public function edit2($id){
      $object3 = hobby::find($id);
       return view('edit2', compact('object3'));

    }
    public function update2(Request $request, $id){
        $object3 = hobby::find($id);
    $test2 = array();
    $test2['computer_game'] = implode(' , ', $request->computer_game);
    $test2['reading_book'] = implode(' , ', $request->reading_book);
        $object3->update($test2);
        return redirect('/home');
    }
错误是突出显示此部分,即使我尝试更新用户或学校数据

$test2['computer_game'] = implode(' , ', $request->computer_game);
上面写着

:内爆():传递的参数无效

我没有问题更新爱好数据,但它的错误一直指向爱好内爆部分

有可能我只能对内爆函数使用一次更新吗?提前谢谢

edit2.blade.php(编辑嗜好页面,如图所示,它是一个数组)


{{method_字段('PUT')}
{{csrf_field()}}
#
体育:
书读:
1.

您收到错误是因为$request->computer\u游戏不是数组。这可以通过转储变量并终止脚本来验证

var_dump($request->computer_game); die;

首先,var_dump()是什么;提供给该面向对象数组。请大家分享一下,然后我们试着回答

然后,要停止多次加载,您可以创建一个私有var($loaded),默认情况下它将为false
private static$loaded=false
然后在函数中启动任何代码之前,使用if语句检测loaded是否为true

if(self::$loaded){
    return;
}
self::$loaded = true

这对你有帮助!请发布var_dump

只需简单地尝试以下操作:

$test2['computer_game'] = implode(' , ', (array)$request->computer_game);

这将把
$request->computer\u game
转换成一个数组,如果它还没有的话。

什么是
var\u dump($request->computer\u game)
产生的?你能给我们看看
var\u dump($request->computer\u game)
的返回值吗?@Maraboc它不做任何检查dd($request->computer\u game)`!!可能是tks的重复为了快速回复,我尝试了你的代码没有任何错误,但是没有进行更新,实际上电脑游戏是一个数组,我会更新我的问题,向你展示编辑页面变量声明应该在类的顶部。在任何代码之前。所以你的var_转储不会给出任何东西;数组可能是空的。在edit2中,您应该注意的另一件事是不要使用{{},因为它只编译变量,而不是用于回复的functionstks,我尝试了您的解决方案,它没有得到任何错误,但直到我的数据返回我输入的值,它才更新,但没有更新itErm ok。。我该问什么问题?对不起,我仍然不知道你发现了什么问题@mega6382我已经发布了问题,请看,我还更改了控制器
$test2['computer_game'] = implode(' , ', (array)$request->computer_game);