2014-12-01 2 views
0

Мне нужна таблица catalog_product_entity_media_gallery value данные только на странице списка.Как собрать такую ​​информацию на странице листинга magento?

Когда я иду на странице данных и использовать print_r($_productCollection);

$ _productCollection на странице данных возвращает мне массив, как это.

  [_resourceName:protected] => catalog/product 
      [_resource:protected] => 
      [_resourceCollectionName:protected] => catalog/product_collection 
      [_dataSaveAllowed:protected] => 1 
      [_isObjectNew:protected] => 
      [_data:protected] => Array 
       (
        [entity_id] => 160 
        [entity_type_id] => 4 
        [attribute_set_id] => 4 
        [type_id] => simple 
        [sku] => 104580 
        [has_options] => 0 
        [required_options] => 0 
        [created_at] => 2014-12-01 10:40:25 
        [updated_at] => 2014-12-01 11:51:15 
        [cat_index_position] => 1 
        [price] => 4.4900 
        [tax_class_id] => 4 
        [final_price] => 4.4900 
        [minimal_price] => 4.4900 
        [min_price] => 4.4900 
        [max_price] => 4.4900 
        [tier_price] => 
        [name] => E Shisha E Liquid eKaiser *Menthol Flavour* 10ml Platinum Bottle Refill for Rechargeable E cigarette and E Shisha 
        [msrp_enabled] => 1 
        [msrp_display_actual_price_type] => 1 
        [thumbnail] => amazon_images/104580.jpg 
        [small_image] => amazon_images/104580.jpg 
        [image_label] => 
        [small_image_label] => 
        [thumbnail_label] => 
        [url_key] => e-shisha-e-liquid-ekaiser-menthol-flavour-10ml-platinum-bottle-refill-for-rechargeable-e-cigarette-and-e-shisha 
        [short_description] => The eKaiser Platinum e Liquid range is made specifically for Cigarette smokers. 

мне нужна только [small_image] значение, которое возвращает мне только amazon_images/104580.jpg

Если какой-либо один есть идея, как сделать это

Пожалуйста, помогите мне.

Спасибо

ответ

1

А также вы можете сделать так:

$product = Mage::getModel('catalog/product')->load($_product->getId()); 
foreach ($product->getMediaGallery('images') as $image) { 
... 
} 
+0

Кажется, что мы работаем, но можем ли мы повторить его. Только одно изображение для каждого продукта без цикла foreach? – user3040570

+0

$ images = $ product-> getMediaGallery ('images'); if (! Empty ($ images)) { \t $ image = $ images [0]; \t if (! Empty ($ image)) { \t \t $ imagepath = explode ('/', $ image ['file']); $ imagename = $ imagepath [count ($ imagepath) -1]; echo $ imagename; \t} } –

+0

Благодарим вас за время – user3040570

1

Вы можете сделать это на странице со списком.

$product = Mage::getModel('catalog/product')->load($_product->getId()); 
foreach ($product->getMediaGalleryImages() as $image) { 
    var_dump($image->getUrl()); 
} 
+0

Спасибо за ваши отзывы, но он возвращает нам все изображение с полным путем. Но нам нужно показать только одно, только имя изображения. – user3040570

+0

Да. Нет проблем для этого. Вы можете получить эту коллекцию галерей изображений, используя этот метод getMediaGalleryImages(). И, выберите то, что вы хотите. –

0

для цикла в листинг с getModel замедлит вашу страницу листинга значительно.

С листинговой страницей вы должны использовать только плоские таблицы для сбора.

Поэтому вам нужно убедиться, что маленькое изображение заполнено плоским столом.

+0

Я согласен с вами, но, как мы можем это сделать? Можете ли вы объяснить мне? – user3040570

+0

в вашем отладке у вас есть [small_image] => amazon_images/104580.jpg. Поскольку это часть массива объектов $ _data, вы используете getdata ('smallImage'); – oscprofessionals

+0

Неустранимая ошибка: вызов неопределенной функции getdata() – user3040570