SQLSTATE[22007]: 无效的日期时间格式
SQLSTATE[22007]: Invalid datetime forma
我尝试保存它从我的视图中带给我的一些数据,这是一个 table,但我不知道为什么它会在插入时抛出错误。
result of insert
这是我的观点:
table of view
这是我的控制器:
$checked_array = $_POST['id_version'];
foreach ($request['id_version'] as $key => $value) {
if (in_array($request['id_version'][$key], $checked_array))
{
$soft_instal = new Software_instalacion;
$soft_instal->id_instalacion = $instalaciones->id;
$soft_instal->id_historial = $historial->id;
$soft_instal->id_usuario = $request->id_usuario;
$soft_instal->id_version = $_POST['id_version'][$key];
$soft_instal->obs_software = $_POST['obs_software'][$key];
$soft_instal->id_tipo_venta = $_POST['id_tipo_venta'][$key];
$soft_instal->save();
}
}
id_tipo_venta
似乎是一个空字符串,显然无效。
您可以尝试调试您得到的内容:
var_dump($_POST['id_tipo_venta'][$key]);
die;
您的数据库字段需要接收一个整数。因此,使用intval()函数可以解决你的问题。
确实,我认为您的代码 return 是一个字母数字字符串。
因此,如果没有版本 returned(未设置,字符串或简单为 null),下面的代码将 return 在所有情况下为 0:
$soft_instal->id_tipo_venta = intval($_POST['id_tipo_venta'][$key]);
另一方面,intval() 将始终转换为 int,因此将转换小数,例如:
intval("1.1") // returns 1
intval("v1.1") // returns 0
如果这不是所需的行为,也许您应该考虑更改数据库类型。
编辑:
当然,您也可以将值设置为 null ,如果您更喜欢 到 0。您必须在数据库中允许可以为 null 的值。
id_tipo_venta 不能为空,尝试使用一些数字或将数据库中的类型列更改为 varchar
我尝试保存它从我的视图中带给我的一些数据,这是一个 table,但我不知道为什么它会在插入时抛出错误。 result of insert
这是我的观点: table of view
这是我的控制器:
$checked_array = $_POST['id_version'];
foreach ($request['id_version'] as $key => $value) {
if (in_array($request['id_version'][$key], $checked_array))
{
$soft_instal = new Software_instalacion;
$soft_instal->id_instalacion = $instalaciones->id;
$soft_instal->id_historial = $historial->id;
$soft_instal->id_usuario = $request->id_usuario;
$soft_instal->id_version = $_POST['id_version'][$key];
$soft_instal->obs_software = $_POST['obs_software'][$key];
$soft_instal->id_tipo_venta = $_POST['id_tipo_venta'][$key];
$soft_instal->save();
}
}
id_tipo_venta
似乎是一个空字符串,显然无效。
您可以尝试调试您得到的内容:
var_dump($_POST['id_tipo_venta'][$key]);
die;
您的数据库字段需要接收一个整数。因此,使用intval()函数可以解决你的问题。
确实,我认为您的代码 return 是一个字母数字字符串。
因此,如果没有版本 returned(未设置,字符串或简单为 null),下面的代码将 return 在所有情况下为 0:
$soft_instal->id_tipo_venta = intval($_POST['id_tipo_venta'][$key]);
另一方面,intval() 将始终转换为 int,因此将转换小数,例如:
intval("1.1") // returns 1
intval("v1.1") // returns 0
如果这不是所需的行为,也许您应该考虑更改数据库类型。
编辑: 当然,您也可以将值设置为 null ,如果您更喜欢 到 0。您必须在数据库中允许可以为 null 的值。
id_tipo_venta 不能为空,尝试使用一些数字或将数据库中的类型列更改为 varchar