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);