Страница 1 из 2

Дополнительное поле в таблице ore_images

СообщениеДобавлено: 22 май 2014, 13:19
Sheff
Доброго времени суток!
Хочу создать дополнительное поле sku_object в таблице images с артикулом (аналог встроенного id_object) и поле sku_apart в apartment по которому буду сопоставлять картинки с апартаментами.
Вопрос, как сделать условие, что если поле sku_object == 0, то выводим картинки как есть (не меняем код) сопоставляя id_object и file_name , else выводим в карточке картинки сопоставляя по значению поля sku_object?

подозреваю что это делается в файле \protected\modules\apartments\models\Apartment.php строка
'images' => array(self::HAS_MANY, 'Images', 'id_object', 'order' => 'images.sorter'),

тк менял \protected\modules\images\models\Images.php но на вывод не повлияло
Спасибо!

Re: Дополнительное поле в таблице ore_images

СообщениеДобавлено: 22 май 2014, 23:31
Koduc
Смотрите файл /protected/modules/images/views/widgetImages.php
Именно в через этот файл идет вывод изображений, там можете попробовать вставить нужные условия.

Re: Дополнительное поле в таблице ore_images

СообщениеДобавлено: 22 май 2014, 23:44
Sheff
Спасибо.

Re: Дополнительное поле в таблице ore_images

СообщениеДобавлено: 23 май 2014, 10:17
Sheff
посмотрел, да там выводятся доп изображения, главное выводится protected\modules\apartments\views\_view.php
но это немного не то что хотелось, интересует именно логика из какой таблицы берется изображение и по какому параметру сопоставляется (id_object поле). Почему когда меняю в \protected\modules\images\modelsimages.php таблицу, изменения не происходят, а когда меняюю \protected\modules\apartments\models\Apartment.php то меняется?

Re: Дополнительное поле в таблице ore_images

СообщениеДобавлено: 23 май 2014, 19:19
Sheff
Может кэш, но вроде чистил...
И еще, один вопросик, как получить id апартамента в той функции что в первом моем сообщении(\protected\modules\apartments\models\Apartment.php)

Re: Дополнительное поле в таблице ore_images

СообщениеДобавлено: 26 май 2014, 07:57
Koduc
Sheff писал(а):И еще, один вопросик, как получить id апартамента в той функции что в первом моем сообщении(\protected\modules\apartments\models\Apartment.php)

Там можно получить через $this->id

По поводу таблиц. В Apartment.php описывается как раз связь с нужной таблицей и по нужному полю. Там указано, что связывается с моделью Images по полю id_object там. То есть, id_object в таблице картинок указывает на id в таблице объявлений. Соответсвенно, вы можете сделать как-то аналогичную связь с другой таблицей или изменить эту

Re: Дополнительное поле в таблице ore_images

СообщениеДобавлено: 26 май 2014, 08:03
Sheff
Говорит что не определоно apartmant.id. в relations пытаюсь получить ид. Хотелось бы ьам условие если есть поле то релатион с моим полем а если у this-> id нет поля то по дефрлту с id_object
Отправил запрос через форму на платную дороботку.

Re: Дополнительное поле в таблице ore_images

СообщениеДобавлено: 26 май 2014, 08:18
andipas
Вам нужно почитать о relation в yii, в двух словах не объяснить - https://www.google.ru/search?q=relation ... eDNKDxgfgL

Re: Дополнительное поле в таблице ore_images

СообщениеДобавлено: 26 май 2014, 10:35
Sheff
if ($relations['images'].'id_object'==0){
$relations['images'] = array(self::HAS_MANY, 'Images', 'id_ref', 'order' => 'images.sorter');
return $relations;}
else{
$relations['images'] = array(self::HAS_MANY, 'Images', 'id_object', 'order' => 'images.sorter');
return $relations;
}
почти сделал что хотел, но почему-то стандартные не срабатывают

Re: Дополнительное поле в таблице ore_images

СообщениеДобавлено: 26 май 2014, 10:57
Sheff
но все равно придется еще както соединять с полем в таблице ore_apartment...
Прошу помочь платно с реализацией двух одинаковых полей (допустим id_ref) в ore_images и ore_apartment, текстовых, чтобы если поле в ore_images.id_object ==0 тогда ore_images.id_object=ore_images.id_ref где ore_apartment.id = ore_apartment.id_ref