每当我尝试将某些内容更新到我的数据中时,我一直会收到此错误。最后一次并没有发生很多事情,但是在放入新的更新功能之后,错误不断弹出,并且由于某种原因,它指向我输入的新功能,即使我在旧功能处更新。
控制器:
//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);
它说
:implode():传递的参数无效
我没有更新爱好数据的问题,但错误一直指向爱好内爆部分。
我是否有可能只在内爆函数上使用更新一次?提前致谢
edit2.blade.php(编辑爱好页面,如图所示)
<form class="form-horizontal" method="post" action="{{ url('/user/show/'.$object3->id) }}">
{{ method_field('PUT') }}
{{ csrf_field() }}
<table class="table table-bordered table-hover" id="tab_logic">
<thead>
<tr >
<th class="text-center">
#
</th>
<th class="text-center">
Sports:
</th>
<th class="text-center">
Books read:
</th>
</tr>
</thead>
<tbody>
<tr id='addr0'>
<td>
1
</td>
<td>
<input type="text" name='computer_game[]' class="form-control"/>
</td>
<td>
<input type="text" name='reading_book[]' class="form-control"/>
</td>
</tr>
<tr id='addr1'></tr>
</tbody>
</table>
<input type="submit" class="btn btn-primary" value="Save">
答案 0 :(得分:2)
只需简单尝试以下内容:
$test2['computer_game'] = implode(' , ', (array)$request->computer_game);
这会将$request->computer_game
转换为数组(如果还没有)。
答案 1 :(得分:0)
您收到错误是因为$ request-&gt; computer_game不是数组。这可以通过转储变量并终止脚本来验证。
var_dump($request->computer_game); die;
答案 2 :(得分:0)
首先是var_dump();给出了面向对象的数组。然后我们将尝试回答。
然后停止多次加载你可以创建一个私有var($ loaded),默认情况下它将是false private static $loaded = false;
然后在函数使用中启动任何代码if if语句来检测加载是否为真
if(self::$loaded){
return;
}
self::$loaded = true
这对你有所帮助!请发布var_dump!