我知道这个问题已被多次询问,我已尝试过所有其他解决方案,但对我不起作用。
我正在尝试使用csv文件将数据插入到我的数据库中,但之后我收到此错误
SQLSTATE [42S22]:找不到列:1054未知列'名称' '字段列表'(SQL:插入
group_item
(group_id
,created_at
,item_id
,name
,price
,updated_at
)值(1, 2017-11-21 15:44:57,0,粉末,120,2017-11-21 15:44:57)
我在name
中没有group_item
列,但我在item table
中有名字。在上面的错误中,它显示了name列,结果清楚地表明csv文件与列匹配。为什么我仍然会收到此错误。
这可能来自我的模特吗?以下是我的模特
物品
public function groups()
{
return $this->belongsToMany('App\Group','group_item','item_id','group_id')
->withTimestamps();
}
组
public function items()
{
return $this->belongsToMany('App\Item','group_item','group_id','item_id')
->withTimestamps();
}
控制器
public function import($id, Request $request)
{
$group = Group::whereId($id)->firstorFail();
#import files into category table
if($request->file('imported-file'))
{
$path = $request->file('imported-file')->getRealPath();
$data = Excel::load($path, function($reader)
{
})->get();
if(!empty($data) && $data->count())
{
foreach ($data->toArray() as $row)
{
if(!empty($row))
{
$dataArray[] =
[
'name' => $row['name'],
'price' => $row['price'],
];
}
}
if(!empty($dataArray))
{
$group->items()->attach($dataArray);
//group->items()->save(new App\Item($dataArray));
}
}
}
}