MaJIon Опубліковано: 20 травня 2021 Share Опубліковано: 20 травня 2021 Здравствуйте, пытаюсь закэшировать опции товара, но получаю ошибки, подскажите что я делаю не так? Сам файл кэша появляется, опции в файле кэшируются, но почему-то не выводится Ошибки следующие: 1. rying to access array offset on value of type int in 2. : Invalid argument supplied for foreach() in 3. : Trying to access array offset on value of type int in Модель public function getProductOptions($product_id) { $product_option_data = array(); $product_option_cache = $this->cache->get('product.option.' . (int)$product_id); if (!$product_option_cache) { $product_option_cache = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_option po LEFT JOIN `" . DB_PREFIX . "option` o ON (po.option_id = o.option_id) LEFT JOIN " . DB_PREFIX . "option_description od ON (o.option_id = od.option_id) WHERE po.product_id = '" . (int)$product_id . "' AND od.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY o.sort_order"); foreach ($product_option_cache->row as $product_option_value) { $product_option_value_data = array(); $product_option_value_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_option_value pov LEFT JOIN " . DB_PREFIX . "option_value ov ON (pov.option_value_id = ov.option_value_id) LEFT JOIN " . DB_PREFIX . "option_value_description ovd ON (ov.option_value_id = ovd.option_value_id) WHERE pov.product_id = '" . (int)$product_id . "' AND pov.product_option_id = '" . (int)$product_option['product_option_id'] . "' AND ovd.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY ov.sort_order"); foreach ($product_option_value_query->rows as $product_option_value) { $product_option_value_data[] = array( 'product_option_value_id' => $product_option_value['product_option_value_id'], 'option_value_id' => $product_option_value['option_value_id'], 'name' => $product_option_value['name'], 'image' => $product_option_value['image'], 'quantity' => $product_option_value['quantity'], 'subtract' => $product_option_value['subtract'], 'price' => $product_option_value['price'], 'price_prefix' => $product_option_value['price_prefix'], 'weight' => $product_option_value['weight'], 'weight_prefix' => $product_option_value['weight_prefix'] ); } $product_option_data[] = array( 'product_option_id' => $product_option['product_option_id'], 'product_option_value' => $product_option_value_data, 'option_id' => $product_option['option_id'], 'name' => $product_option['name'], 'type' => $product_option['type'], 'value' => $product_option['value'], 'required' => $product_option['required'] ); } $this->cache->set('product.option.' . (int)$product_id, $product_option_cache); } return $product_option_cache; } Надіслати Поділитися на інших сайтах More sharing options...
halfhope Опубліковано: 20 травня 2021 Share Опубліковано: 20 травня 2021 Добрый вечер. Опции кэшировать это так себе решение. Если их прям много-много, рекомендую посмотреть этот пост. Надіслати Поділитися на інших сайтах More sharing options... esculapra Опубліковано: 20 травня 2021 Share Опубліковано: 20 травня 2021 57 минут назад, MaJIon сказал: $product_option_cache->row 57 минут назад, MaJIon сказал: Invalid argument supplied for foreach() покажи на каких строках оибка и кэш $product_option_cache Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 20 травня 2021 Share Опубліковано: 20 травня 2021 13 минут назад, esculapra сказал: покажи на каких строках оибка и кэш $product_option_cache Да он не те переменные кэширует) Нужно кэшировать $product_option_data, а он результат запроса кэширует, еще и отдает этот резалт вместо того что нужно. Надіслати Поділитися на інших сайтах More sharing options... esculapra Опубліковано: 20 травня 2021 Share Опубліковано: 20 травня 2021 1 час назад, MaJIon сказал: $this->cache->set('product.option.' . (int)$product_id, $product_option_cache); 12 минут назад, halfhope сказал: Да он не те переменные кэширует) Нужно кэшировать $product_option_data, а он результат запроса кэширует, еще и отдает этот резалт вместо того что нужно. Соверенно верно Надіслати Поділитися на інших сайтах More sharing options... MaJIon Опубліковано: 20 травня 2021 Автор Share Опубліковано: 20 травня 2021 Я еще профан в php, поэтому сразу не понял. Спасибо за подсказку, переделал и все кэширует как надо По поводу вашей оптимизации есть ли смысл мне делать, если у меня всего 200 опций, и они на каждый товар почти одинаковые? Я из-за этого и решил закешировать их) 1 час назад, halfhope сказал: Да он не те переменные кэширует) Нужно кэшировать $product_option_data, а он результат запроса кэширует, еще и отдает этот резалт вместо того что нужно. Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 20 травня 2021 Share Опубліковано: 20 травня 2021 17 минут назад, MaJIon сказал: Я еще профан в php, поэтому сразу не понял. Спасибо за подсказку, переделал и все кэширует как надо По поводу вашей оптимизации есть ли смысл мне делать, если у меня всего 200 опций, и они на каждый товар почти одинаковые? Я из-за этого и решил закешировать их) По-ситуации. Без тестов ничего не ясно) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Загальні питання Twig Ошибки при кешировании Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
esculapra Опубліковано: 20 травня 2021 Share Опубліковано: 20 травня 2021 57 минут назад, MaJIon сказал: $product_option_cache->row 57 минут назад, MaJIon сказал: Invalid argument supplied for foreach() покажи на каких строках оибка и кэш $product_option_cache Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 20 травня 2021 Share Опубліковано: 20 травня 2021 13 минут назад, esculapra сказал: покажи на каких строках оибка и кэш $product_option_cache Да он не те переменные кэширует) Нужно кэшировать $product_option_data, а он результат запроса кэширует, еще и отдает этот резалт вместо того что нужно. Надіслати Поділитися на інших сайтах More sharing options... esculapra Опубліковано: 20 травня 2021 Share Опубліковано: 20 травня 2021 1 час назад, MaJIon сказал: $this->cache->set('product.option.' . (int)$product_id, $product_option_cache); 12 минут назад, halfhope сказал: Да он не те переменные кэширует) Нужно кэшировать $product_option_data, а он результат запроса кэширует, еще и отдает этот резалт вместо того что нужно. Соверенно верно Надіслати Поділитися на інших сайтах More sharing options... MaJIon Опубліковано: 20 травня 2021 Автор Share Опубліковано: 20 травня 2021 Я еще профан в php, поэтому сразу не понял. Спасибо за подсказку, переделал и все кэширует как надо По поводу вашей оптимизации есть ли смысл мне делать, если у меня всего 200 опций, и они на каждый товар почти одинаковые? Я из-за этого и решил закешировать их) 1 час назад, halfhope сказал: Да он не те переменные кэширует) Нужно кэшировать $product_option_data, а он результат запроса кэширует, еще и отдает этот резалт вместо того что нужно. Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 20 травня 2021 Share Опубліковано: 20 травня 2021 17 минут назад, MaJIon сказал: Я еще профан в php, поэтому сразу не понял. Спасибо за подсказку, переделал и все кэширует как надо По поводу вашей оптимизации есть ли смысл мне делать, если у меня всего 200 опций, и они на каждый товар почти одинаковые? Я из-за этого и решил закешировать их) По-ситуации. Без тестов ничего не ясно) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Загальні питання Twig Ошибки при кешировании Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
halfhope Опубліковано: 20 травня 2021 Share Опубліковано: 20 травня 2021 13 минут назад, esculapra сказал: покажи на каких строках оибка и кэш $product_option_cache Да он не те переменные кэширует) Нужно кэшировать $product_option_data, а он результат запроса кэширует, еще и отдает этот резалт вместо того что нужно. Надіслати Поділитися на інших сайтах More sharing options... esculapra Опубліковано: 20 травня 2021 Share Опубліковано: 20 травня 2021 1 час назад, MaJIon сказал: $this->cache->set('product.option.' . (int)$product_id, $product_option_cache); 12 минут назад, halfhope сказал: Да он не те переменные кэширует) Нужно кэшировать $product_option_data, а он результат запроса кэширует, еще и отдает этот резалт вместо того что нужно. Соверенно верно Надіслати Поділитися на інших сайтах More sharing options... MaJIon Опубліковано: 20 травня 2021 Автор Share Опубліковано: 20 травня 2021 Я еще профан в php, поэтому сразу не понял. Спасибо за подсказку, переделал и все кэширует как надо По поводу вашей оптимизации есть ли смысл мне делать, если у меня всего 200 опций, и они на каждый товар почти одинаковые? Я из-за этого и решил закешировать их) 1 час назад, halfhope сказал: Да он не те переменные кэширует) Нужно кэшировать $product_option_data, а он результат запроса кэширует, еще и отдает этот резалт вместо того что нужно. Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 20 травня 2021 Share Опубліковано: 20 травня 2021 17 минут назад, MaJIon сказал: Я еще профан в php, поэтому сразу не понял. Спасибо за подсказку, переделал и все кэширует как надо По поводу вашей оптимизации есть ли смысл мне делать, если у меня всего 200 опций, и они на каждый товар почти одинаковые? Я из-за этого и решил закешировать их) По-ситуации. Без тестов ничего не ясно) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Загальні питання Twig Ошибки при кешировании
esculapra Опубліковано: 20 травня 2021 Share Опубліковано: 20 травня 2021 1 час назад, MaJIon сказал: $this->cache->set('product.option.' . (int)$product_id, $product_option_cache); 12 минут назад, halfhope сказал: Да он не те переменные кэширует) Нужно кэшировать $product_option_data, а он результат запроса кэширует, еще и отдает этот резалт вместо того что нужно. Соверенно верно Надіслати Поділитися на інших сайтах More sharing options... MaJIon Опубліковано: 20 травня 2021 Автор Share Опубліковано: 20 травня 2021 Я еще профан в php, поэтому сразу не понял. Спасибо за подсказку, переделал и все кэширует как надо По поводу вашей оптимизации есть ли смысл мне делать, если у меня всего 200 опций, и они на каждый товар почти одинаковые? Я из-за этого и решил закешировать их) 1 час назад, halfhope сказал: Да он не те переменные кэширует) Нужно кэшировать $product_option_data, а он результат запроса кэширует, еще и отдает этот резалт вместо того что нужно. Надіслати Поділитися на інших сайтах More sharing options... halfhope Опубліковано: 20 травня 2021 Share Опубліковано: 20 травня 2021 17 минут назад, MaJIon сказал: Я еще профан в php, поэтому сразу не понял. Спасибо за подсказку, переделал и все кэширует как надо По поводу вашей оптимизации есть ли смысл мне делать, если у меня всего 200 опций, и они на каждый товар почти одинаковые? Я из-за этого и решил закешировать их) По-ситуации. Без тестов ничего не ясно) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
MaJIon Опубліковано: 20 травня 2021 Автор Share Опубліковано: 20 травня 2021 Я еще профан в php, поэтому сразу не понял. Спасибо за подсказку, переделал и все кэширует как надо По поводу вашей оптимизации есть ли смысл мне делать, если у меня всего 200 опций, и они на каждый товар почти одинаковые? Я из-за этого и решил закешировать их) 1 час назад, halfhope сказал: Да он не те переменные кэширует) Нужно кэшировать $product_option_data, а он результат запроса кэширует, еще и отдает этот резалт вместо того что нужно. Надіслати Поділитися на інших сайтах More sharing options...
halfhope Опубліковано: 20 травня 2021 Share Опубліковано: 20 травня 2021 17 минут назад, MaJIon сказал: Я еще профан в php, поэтому сразу не понял. Спасибо за подсказку, переделал и все кэширует как надо По поводу вашей оптимизации есть ли смысл мне делать, если у меня всего 200 опций, и они на каждый товар почти одинаковые? Я из-за этого и решил закешировать их) По-ситуации. Без тестов ничего не ясно) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
Recommended Posts