我正在使用maatwebsite/excel
我的CSV文件包含1449
行,其中每行有value
和parent title
。 (这是样本)
我想要的是从另一个表中获取id
parents
并使用这些ID而不是标题(我在我的csv中有)
import function
public function importsku(Request $request) {
Excel::load($request->file('file'), function($reader) {
$results = $reader->all();
foreach($results as $row){
$findermap = new FinderMap;
$findermap->ymm_value_id = $row->ymm_value_id;
$findermap->sku = $row->sku;
$findermap->save();
}
Session::flash('success', 'Your Data imported successfully.');
return redirect()->route('finders.index');
});
}
我希望获得id's
的父母姓名存储在名为 finder_ymm_values 的表格中,其中 dropdown_id 为4
我认为这将有助于我们限制搜索并更快地获得结果
我应该在导入功能中添加什么才能搜索我的父母姓名并为我拥有的每个值获取他们的ID?
我将下面的代码添加到我的导入功能中,现在它确实获得了我正在寻找的ID,但问题是它会将它们收集起来。
code i added
foreach($results as $row){
//added
$vals = FinderYmmValue::where('title', $row->ymm_value_id)->where('dropdown_id', '4')->pluck('id');
$findermap = new FinderMap;
$findermap->ymm_value_id = $vals; //changed
$findermap->sku = $row->sku;
$findermap->save();
}
error i get
SQLSTATE [23000]:完整性约束违规:1452无法添加或 更新子行:外键约束失败.......... insert 进入
finder_maps
(ymm_value_id
,sku
,updated_at
,created_at
) 价值观[[303],L0R88AA,2018-06-14 10:41:51,2018-06-14 10:41:51))
正如您在我的错误的最后一行中看到的那样,我将我的身份标记为[303]
任何想法?
答案 0 :(得分:2)
此处我已成功修改并成功导入了我的文件。
foreach($results as $row){
$vals = FinderYmmValue::where('title', $row->ymm_value_id)->where('dropdown_id', '4')->pluck('id');
foreach ($vals as $val) {
$valid = $val;
}
$findermap = new FinderMap;
$findermap->ymm_value_id = $valid;
$findermap->sku = $row->sku;
$findermap->save();
}
希望它可以帮助别人。