在数据库中处理插入数据时遇到问题。始终返回消息Array to string conversion
和我不知道为什么。在其他控制器中,我有这个代码,它是可以的。现在我需要插入一个数据,但我不能
我的实际代码是:
public function insertarActuacion(){
$fechaActual = date("Y-m-d H:i:s");
$tiempoEmpleado = 0;
$bono = DB::select(DB::raw("SELECT codBono
FROM bonos
WHERE bonos.usuario = " . Auth::user()->id));
$tiempoRestante = 0;
DB::insert("INSERT INTO actuacion (fecha, tiempoEmpleado, usuario, bono, tiempoRestanteBono) VALUES (?, ?, ?, ?, ?) ",
[ $fechaActual, $tiempoEmpleado, Auth::user()->id, $bono, $tiempoRestante ] );
}
谢谢你帮我
这个问题的答案实际上已经在错误消息中了。
插入的值之一被认为是一个数组,但代码试图将其强制转换为字符串,从而导致错误。
检查哪一个数据是数组,然后只从中获取所需的值。
或者,如果你不知道什么数据是数组,你可以使用var_dump($var)
,它会告诉你类型是什么,内容是什么。只用于调试目的。
插入时,$bono
是一个数组。您需要选择以下值。
$bono = DB::table('bonos')->select('codBono')->where('usuario',Auth::user()->id)->first();
$codBono = '';
if(!empty($bono)){
$codBono = $bono->codBono;
}
现在插入这个值。
DB::insert("INSERT INTO actuacion (fecha, tiempoEmpleado, usuario, bono, tiempoRestanteBono) VALUES (?, ?, ?, ?, ?) ",
[ $fechaActual, $tiempoEmpleado, Auth::user()->id, $codBono, $tiempoRestante ] );