как правильно сделать импорт загрузки товаров на сайт? Laravel
сделал загрузку из файла csv по строчке получает данные и записывает в в БД выбранной категории ну это если в одну категорию, т.е я передаю category_id вместе с файлом csv в эту модель, а если в csv будут вложенные категории т.е коляски детские/трости ?
Т.е если я создам категорию 'коляски детские' и когда при загрузке файла csv я выбираю из select категории категорию 'коляски детские' и соответственно получаю id этой категории и передаю ее в модель(так как у меня связанные две таблицы Product и Categogy один ко многим
class Product extends Model
{
public function category()
{
return $this->belongsTo('App\Category');
}
}
class Category extends Model
{
public function products()
{
return $this->hasMany('App\Product');
}
}
<input type="file" name="file" accept=".csv" required="">
<br>
<select name="category_id" required>
<option selected disabled value=''>Выбрать Категорию</option>
@foreach($categories as $category)
<option value="{{$category->id}}">{{$category->name}}</option>
@endforeach
</select>
строки csv файла:
title 'baby2', category = 'коляски детские/трости', price = 100$ к примеру и т .д.
//записываем в БД строками товар
public function model(array $row)
{
if ($row['availability'] === 'да') {
return new Product([
'category_id' => $this->category_id,
'title' => $row['title'],
'product_code' => $row['product_code']',
'price' => $row['price'],
'availability' => '1',
'description' => $row['description'],
'images' => json_encode(explode(';', $row['images'])),
]);
}
}
нужно менять структуру или что т.е если беру файл csv а он имеет строки
title 'baby2', category = 'коляски детские/трости', price = 100$ к примеру и т .д. т.е id категории мне уже не пройдет я к примеру не знаю есть ли на сатте такая категория или нет, а оно должно автоматически создать чтоли коляски детские, потом вложенную категорию трости получить ее id и выгрузить туда товар?
Спасибо!