私はCVSインポートによって2つのモデルを作成したいと思います。第1のモデルは小売店のリストであり、第2のモデルは小売店の対応する場所である。参照CSVインポートのリレーションシップID
これは、CSVのインポートです:
street_number,
street_address,
city,
country,
postcode,
latitude,
longitude
私が抽出されます:LocationStores.php
モデルは、これらの値が必要になります
name,
email,
website
:RetailStores.php
モデルは、これらの値が必要になります
name,email,website,street_number,street_address,city,country,postcode,latitude,longitude
"Example name",[email protected],10,"random street",amsterdam,netherlands,4000,52.666,4.3333
内のCSVファイルからのデータループを作成し、それらを空の配列変数にアタッチすると、ここからはEloquent
を使用してデータベースが生成されます。以下は、私がこれを行う方法です。
$file = Input::file('csv_file');
$data = $this->retailer->processCsv($file);
$retailers = [];
$locations = [];
foreach ($data as $value) {
$retailers[] = array(
'user_id' => Auth::user()->id,
'name' => $value['name'],
'email' => $value['email'],
'website' => $value['website'],
'created_at' => Carbon::now(),
'updated_at' => Carbon::now()
);
$locations[] = array(
'retailer_id' => $value['retailer_id'], // ISSUE HERE
'street_number' => $value['street_number'],
'street_address' => $value['street_address'],
'city' => $value['city'],
'state' => $value['state'],
'country' => $value['country'],
'country_code' => $value['country_code'],
'postcode' => $value['postcode'],
'latitude' => $value['latitude'],
'longitude' => $value['longitude'],
'created_at' => Carbon::now(),
'updated_at' => Carbon::now()
);
Retailer::insert($retailers);
Location::insert($locations);
}
私は2つの別々のモデル小売と場所を持っている上で述べたように。 $locations
配列の小売業者IDを参照する必要があります。今のところ私はCSVファイルの各場所に関連する小売店の店舗IDをユーザーに入力させるオプションを持っていますが、人々はよく知っています。
ただし、CSVファイルは、それが持っている場所ごとに「店舗名」を供給することを考慮すると、アレイ内の各ユニークな店舗名の増分IDを参照する方法はありませんか?
Fruit,[email protected],www.fruit.com,1,"apple street",etc
Fruit,[email protected],www.fruit.com,120,"pear parkway",etc
Fruit,[email protected],www.fruit.com,350,"orange avenue",etc
Meat,[email protected],www.meat.com,33,"Steak street",etc
Meat,[email protected],www.meat.com,33,"Chicken Road",etc
のforeachループ内でこれらの値を取得し、1は、このように参照します繰り返さストア名ごとにインクリメントIDを与えることができる方法はあります。たとえばCSVテーブルには、これらの値を持っていた場合関連する店舗をその場所に移動しますか?
アドバイスありがとうございました。