Какая проблема сейчас, я не понимаю как мне сохранить пути к картинкам в бд. Кол-во картинок у каждой записи может быть разное, у какой-то 2, а какой-то 8. Не знаю правильный ли подход выбрал. Сделал в таблице одно поле img (varchar на 400 символов), и мысль такая, чтобы записать туда примерно следующее 1.jpg|2.jpg|3.jpg и т.д., а потом explode-ом разбивать и работать с элементами. Но сейчас не могу сообразить, как именно записать эти картинки в бд. Основные поля записываются без проблем, а для картинок ведь второй цикл предусмотрен, то ли мне нужно еще экземпляр объекта создавать с последующим сохранением элемента в поле толи нет... Путаюсь в общем... Помогите раскурить, не знаю как сделать грамотно, не хочу всякие говнокоды и костыли(.
Код прилагаю:
Код: Выделить всё
xml такого вида
<?xml version="1.0" encoding="UTF-8"?>
-<Ads target="Avito.ru" formatVersion="3">
-<Ad>
<id>203028</id>
<ContactPhone>+7 342 205 56 00</ContactPhone>
<Region>Пермский край</Region>
<City>Пермь</City>
<District>Ленинский</District>
<Street>Спешилова, 104а</Street>
<Description>Музыка, сигнализация с автозапуском, подушка безопасности водителя и пассажира.<br/>Специальные условия на автомобили с пробегом:<br/> • Простое оформление кредита<br/> • Ставка по кредиту от 12,9%<br/> • Вы сами решаете, нужно ли вам КАСКО или нет. Мы - только рекомендуем.</Description>
<Category>Автомобили</Category>
<CarType>С пробегом</CarType>
<Price>480000</Price>
<Make>Renault</Make>
<Model>Sandero Stepway</Model>
<Year>2014</Year>
<Kilometrage>80600</Kilometrage>
<Accident>Не битый</Accident>
<VIN>X7LBSRBYNEH728751</VIN>
<CertificationNumber>5925№119599</CertificationNumber>
<BodyType>хетчбэк</BodyType>
<Doors>4</Doors>
<Color>Красный</Color>
<FuelType>Бензин</FuelType>
<EngineSize>1.6</EngineSize>
<Power>103</Power>
<Transmission>Автомат</Transmission>
<DriveType>Передний</DriveType>
<WheelType>Левый</WheelType>
<Owners>1</Owners>
<PowerSteering>Гидро-</PowerSteering>
<ClimateControl>Кондиционер</ClimateControl>
<Interior>Ткань</Interior>
<PowerWindows>Только передние</PowerWindows>
<Wheels>16</Wheels>
-<Images>
<Image name="203028_1.JPG"/>
<Image name="203028_2.JPG"/>
<Image name="203028_3.JPG"/>
<Image name="203028_4.JPG"/>
<Image name="203028_5.JPG"/>
<Image name="203028_6.JPG"/>
</Images>
</Ad>
</Ads>
//читаем xml
$xmlData = simplexml_load_file('uploadAuto/Avto.xml');
//в цикле создаем объекты с параметрами, и пишем в базу
foreach($xmlData as $key => $item){
$addAuto = new Auto;
/** базовые данные */
$addAuto->id = $item->id;
$addAuto->ContactPhone = $item->ContactPhone;
$addAuto->Region = $item->Region;
$addAuto->City = $item->City;
$addAuto->District = $item->District;
$addAuto->Street = $item->Street;
$addAuto->Description = $item->Description;
$addAuto->Category = $item->Category;
$addAuto->CarType = $item->CarType;
$addAuto->Price = $item->Price;
$addAuto->Make = $item->Make;
$addAuto->Model = $item->Model;
$addAuto->Year = $item->Year;
$addAuto->Kilometrage = $item->Kilometrage;
$addAuto->Accident = $item->Accident;
$addAuto->VIN = $item->VIN;
$addAuto->CertificationNumber = $item->CertificationNumber;
$addAuto->BodyType = $item->BodyType;
$addAuto->Doors = $item->Doors;
$addAuto->Color = $item->Color;
$addAuto->FuelType = $item->FuelType;
$addAuto->EngineSize = $item->EngineSize;
$addAuto->Power = $item->Power;
$addAuto->Transmission = $item->Transmission;
$addAuto->DriveType = $item->DriveType;
$addAuto->WheelType = $item->WheelType;
$addAuto->Owners = $item->Owners;
$addAuto->PowerSteering = $item->PowerSteering;
$addAuto->ClimateControl = $item->ClimateControl;
$addAuto->Interior = $item->Interior;
$addAuto->PowerWindows = $item->PowerWindows;
$addAuto->Wheels = $item->Wheels;
//$addAuto->img = 'img1.jpg|img2.jpg';
/** базовые данные */
/** парсинг массива картинок */
foreach($item->Images->Image as $img){
$addAuto = new Auto;
$addAuto->img = $img['name']; //= 'img1.jpg|';
}
/** парсинг массива картинок */
$addAuto->save(false);
}