Laravel错误将数据从另一个表插入到表中
Posted
技术标签:
【中文标题】Laravel错误将数据从另一个表插入到表中【英文标题】:Laravel error inserting data into table from another table 【发布时间】:2021-12-30 12:06:20 【问题描述】:我正在尝试使用以下代码将表单数据和一个字段插入到产品表中,该字段是我从另一个名为“购买”的表中提取的
Product::create([
'purchase_id'=>$request->product,
'price'=>$price,
'discount'=>$request->discount,
'description'=>$request->description,
'purchase_purchaseprice' => Purchase::where('id',$request->product)->get('price'),
]);
但我收到此错误消息,我认为问题出在["price":"25.00"]
但我未能格式化查询以仅插入 25.00 金额,请帮忙?
Illuminate\Database\QueryException SQLSTATE[22007]:日期时间无效 格式:1366 不正确的十进制值:'["price":"25.00"]' for column
laravel
.products
.purchase_purchaseprice
在第 1 行(SQL:插入 进入products
(purchase_id
,price
,discount
,description
,purchase_purchaseprice
,updated_at
,created_at
) 值 (262, 4000, 0, ?, ["price":"25.00"], 2021-11-19 18:25:59, 2021-11-19 18:25:59))
这是表架构
+------------------------+------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+------------------------+------+-----+---------+----------------+
| id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| purchase_id | bigint(20) unsigned | YES | MUL | NULL | |
| price | decimal(15,2) unsigned | NO | | 0.00 | |
| discount | decimal(15,2) unsigned | NO | | 0.00 | |
| description | text | YES | | NULL | |
| deleted_at | timestamp | YES | | NULL | |
| created_at | timestamp | YES | | NULL | |
| updated_at | timestamp | YES | | NULL | |
| purchase_purchaseprice | decimal(15,2) unsigned | NO | | 0.00 | |
+------------------------+------------------------+------+-----+---------+----------------+
【问题讨论】:
您可以仔细检查并显示您的表架构吗?显然purchase_purchaseprice
设置为日期时间列
@aynber 我用表格模式更新了问题
【参考方案1】:
看起来您将 $price 作为 json 而不是简单的小数,因此您必须对其进行解码...
另一个问题,您正在将一个数组分配给 purchase_purchaseprice' ... 解决这个问题:
Product::create([
'purchase_id'=>$request->product,
'price'=>json_decode($price,true)[0]['price'],
'discount'=>$request->discount,
'description'=>$request->description,
'purchase_purchaseprice' => Purchase::find($request->product)->price,
]);
【讨论】:
非常感谢,现在可以使用了以上是关于Laravel错误将数据从另一个表插入到表中的主要内容,如果未能解决你的问题,请参考以下文章
如何从另一个表中检索并再次将其输入到 laravel 中的另一个表中?