Угруповання умов у запиті ORM Propel (condition, combine) / ~#root -i Угруповання умов у запиті ORM Propel (condition, combine) / ~#root -i Угруповання умов у запиті ORM Propel (condition, combine) / ~#root -i Угруповання умов у запиті ORM Propel (condition, combine) / ~#root -i Угруповання умов у запиті ORM Propel (condition, combine) / ~#root -i Угруповання умов у запиті ORM Propel (condition, combine) / ~#root -i Угруповання умов у запиті ORM Propel (condition, combine) / ~#root -i Угруповання умов у запиті ORM Propel (condition, combine) / ~#root -i
  • RU
  • UA
  • EN
  • Створити інтернет-магазин
  • Документація
  • Блог
    • Unix-подібні ОС
    • Php
    • MySQL
    • JavaScript
    • Менеджери пакетів
    • Docker
    • Seo
  • Допоміжні сервіси
    • Короткі посилання
    • Oбмін переглядами YouTube
  • Вхід
  • Реєстрація
  • Головна
  • Php
  • Угруповання умов у запиті ORM Propel (condition, combine)

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

Часто доводиться комбінувати умови у запиті. Якщо SQL це зробити легко, то використовуючи ORM доводиться винаходити велосипеди. ORM Propel дозволяє це зробити без милиці через інструменти ->condition() та ->combine().

Розглянемо складний приклад, щоб можна було виділити з нього багато корисного для себе.

Наприклад, нам потрібно в WHERE вставити таку умову:

Є товари, які потрібно вибрати з категорії за таким принципом.

(A && B &&C) OR D

A - (user) - товар, що створив Користувач.

B - (price) - ціна товару

С - (stock) - кількість товару

D - (ignore) - прапор, який відповідає за "виводити в будь-якому випадку"

Приклад реалізації:

<?php
Products::create()
    ->condition('user', 'Products.User = ?', 10) // 10 - Id користувача
    ->condition('price', 'Products.Price > ?', 5000) // Ціна більше 5000
    ->condition('stock', 'Products.Stock > ?', 0) // Кількість більше 0
    ->combine(['user','price', 'stock'], 'and', 'u_p_s') // об'єднуємо умови в одно
    ->condition('ignore', 'Products.Ignore = ?', 1) // Якщо один товар показувати в будь-якому випадку
    ->where(['u_p_s','ignore'], 'or') // Порівнюємо 2 умови
    ->find();

18 Липня 18
653
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.

14 Червня 2018

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

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

21 Травня 2018

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

Метою статті стало приєднання (join) не оголошеної у схемі (schema.xml) таблиці у propel2. Мабуть, рідкісний випадок або просто недостатньо документації по даній Propel ORM.

Категорії

  • 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