Підключаємо не оголошену таблицю в Propel або Join Custom Table Propel / ~#root -i Підключаємо не оголошену таблицю в Propel або Join Custom Table Propel / ~#root -i Підключаємо не оголошену таблицю в Propel або Join Custom Table Propel / ~#root -i Підключаємо не оголошену таблицю в Propel або Join Custom Table Propel / ~#root -i Підключаємо не оголошену таблицю в Propel або Join Custom Table Propel / ~#root -i Підключаємо не оголошену таблицю в Propel або Join Custom Table Propel / ~#root -i Підключаємо не оголошену таблицю в Propel або Join Custom Table Propel / ~#root -i Підключаємо не оголошену таблицю в Propel або Join Custom Table Propel / ~#root -i
  • RU
  • UA
  • EN
  • Створити інтернет-магазин
  • Документація
  • Блог
    • Unix-подібні ОС
    • Php
    • MySQL
    • JavaScript
    • Менеджери пакетів
    • Docker
    • Seo
  • Допоміжні сервіси
    • Короткі посилання
    • Oбмін переглядами YouTube
  • Вхід
  • Реєстрація
  • Головна
  • Php
  • Підключаємо не оголошену таблицю в Propel або Join Custom Table Propel

Підключаємо не оголошену таблицю в Propel або Join Custom Table Propel

Нещодавно переді мною стало завдання відсортувати видачу продуктів за таблицею, яка не описана в schema.xml. Наведу короткий приклад схеми таблиці та структури таблиці з позиціями, за якою мені слід відсортувати товари.

Спрощена таблиця товарів (об'єднав таблицю перекладів з основної та урізав поля):

id (int) ID товару
name (string) Ім'я
create_date (int) Дата

Схема таблиці (schema.xml):

<table name="shop_products" phpName="SProducts">
<vendor type="mysql">
<parameter name="Charset" value="utf8"/>
</vendor>

<column name="id" type="INTEGER" required="true" autoIncrement="true" primaryKey="true"/>
<column name="name" type="varchar" size="500" required="true"/>
<column name="create_date" type="INTEGER"/>
</table>

Дорпустим у нас є прив'язка товарів до статей, і в кожної статті може зустрічатися один і той самий товар і кожен товар може мати свою позицію в кожній статті.

Наведу приклад таблиці статей та зв'язку товарів (назвемо таблицю link_page):

page_id (int) Id статті (наведено для прикладу)
product_id (int) ID товару зі схеми SProducts
position (int) Позиція у якій товар є у статті

Ось є позиція кожного товару у статті, але в таблиці товару немає зв'язки, щоб зробити join пропелом. Тому починаємо робити ось так:

SProductsQuery::create()
->addJoin('shop_products.id' , 'link_page.product_id', Criteria::INNER_JOIN)
->addAsColumn('position', 'link_page.position')
->where('page_link_product.page_id = ' . 'ID страницы товара')
->orderBy('position','ASC')
->find();

У моєму випадку повний шлях до Criteria::INNER_JOIN \Propel\Runtime\ActiveQuery\Criteria::INNER_JOIN .

SProductsQuery - згенерована модель за схемою, спрощена для розуміння та описана вище.

Даний запит дасть можливість підключити таблицю, що не оголошена в моделях, в пропел запит, щоб не робити милиць і велосипедів для сортування.

Спробуйте, розбирайтеся, у разі addJoin() дозволив заощадити час перепису і перегенерації схеми під потреби, цим не сильно обтяжуючи сторінку статті, де присутні товари.

21 Травня 18
729
0

Відгуки

Ім'я
Електронна пошта
Рейтинг
Відгук

Інші статті з категорії

25 Квітня 2022

Створити та завантажити CSV на PHP

Розглянемо можливість швидкого створення CSV файлу з автоматичним скачуванням файлу. Розглянемо формування, роздільники та header для можливості завантажити файл.

19 Червня 2019

Шаблони ImageCMS 4.10-4.12.1

Останні шаблони від ImageCMS 4.12, для завантаження потрібна авторизація.

26 Січня 2019

Довге зберігання кошика в інтернет-магазині

Розглянемо варіанти популярних варіантів зберігання товарів у кошику в інтернет-магазині. Позначимо плюси та мінуси таких зберігання. Розглянемо варіанти довгострокового зберігання корзини.

17 Січня 2019

Ключ-ліцензія для ImageCMS 4.9-4.12.1 Pro та Pre

Створення ключа для imageCMS 4.9-4.12.1 Pro та Pre. Для отримання авторизуватися.

07 Грудня 2018

$_SERVER[DOCUMENT_ROOT] у CLI або Cron

При запуску скрипта з консолі немає DOCUMENT_ROOT в $_SERVER. Спробуємо обійти це своїми шляхами, відловити директорію файлу.

31 Жовтня 2018

Аналіз навантажених частин Php коду за допомогою xhprof

Після розробки будь-якого інструменту на PHP стає питання, наскільки створений код ресурсний і які елементи він зачіпає ще. Розглянемо установку xhprof, налаштування та розглянемо способи роботи з xhprof.

18 Липня 2018

Угруповання умов у запиті ORM Propel (condition, combine)

Розберемо можливість об'єднання умов у запиті груп у Propel. Розглянемо приклад фільтрації по полях за допомогою -> condition () і -> combine ().

14 Червня 2018

Авторизація 1С на сайті PHP_AUTH_USER на CentOS apache

Зіткнувся із проблемою авторизації 1с на сайті. Сервер чомусь не приймав від неї параметр PHP_AUTH_USER і PHP_AUTH_PW. Розглянемо докладніше рішення та обхід даних параметрів $_SERVER .

Категорії

  • Unix-подібні ОС
  • Php
  • MySQL
  • JavaScript
  • Менеджери пакетів
  • Docker
  • Seo

Останні коментарі

Добрый день, Сергей. Я на более новых версиях блют...
root-i
23.02.23
Пробовал на transmart колонке. Ничего из перечисле...
Сергей
20.02.23
HenryMit, может быть
root-i
07.02.23
Неофрейдизм — это… Определение, принципы, представ...
HenryMit
07.02.23

Ділюсь інформацією у якій я вимагав допомоги та розбираючись витрачав багато часу. Якщо інформація допомогла хоча б одній людині, то цей сайт створений не дарма.

Подяка на продовження роботи сайту:
Контакти

Telegram Viber Mail

Пошук по сайту

  • Вхід
  • Реєстрація

Сайт працює на chmod -R