Группировка условий в запросе ORM Propel (condition, combine) / ~#root -i
  • Блог
    • Unix-подобные ОС
    • Php
    • MySQL
    • JavaScript
    • Менеджеры пакетов
    • Docker
    • Seo
  • Короткие ссылки
  • Вход
  • Регистрация
  • Главная
  • 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) // Если 1 то товар показывать в любом случае
    ->where(['u_p_s','ignore'], 'or') // Сравниваем 2 условия
    ->find();

root-i
18 Июля 18
373
0
Теги
Php 5.6 Propel ORM
Поделиться

Комментарии

Имя
Электронная почта
Рейтинг
Отзыв

Похожие посты

21 Мая 2018

Подсоединяем не объявленную таблицу в Propel или Join Custom Table Propel

Целью статьи стало присоединение (join) не объявленной в схеме (schema.xml) таблице в propel2. Видимо редкий случай или просто недостаточно документации по данной Propel ORM.

03 Июня 2018

Установка Propel в наш проект через Composer

Подтянем в наш проект ORM Propel2 с помощью Composer. Рассмотрим смежные пакеты, которые нужны для Propel2.

17 Мая 2018

Что такое MVC или с чего начать писать сайт?

Рассмотрим вариант создания простого проекта с MVС, который будет откликаться статическую ссылку в браузере, без управления $_GET параметрами. Ссылка будет разбиваться на путь к файлам и задействовать нужные контроллер, модель и view файл.

19 Мая 2018

Фоновый процесс очереди в Php с Gearman

Иногда возникает нужда использовать фоновый процессы на Php. Рассмотрим пример использования такой возможности в связке Gearman + Php.

19 Мая 2018

Worker Gearman с консоли Cli на Php

Для нормальной работы воркера Gearman требуется постоянная его работа в зацикленном режиме. Со стороны сервера это можно реализовать одним запросом через консоль Cli. Рассмотрим роботу на простом примере.

01 Июня 2018

Подклюение библиотек Composer на Php сайт

Разобравшись что такое Compser и для чего он нужен, следует разобраться как его использовать на сайте. В статье рассмотрим подключение библиотек подтянутых через Composer.

02 Июня 2018

Docker MySQL 5.7 через docker-compose и использование на Ubuntu 14.04

Установка MySQL 5.7 через Docker. Все действия будем производить на Ubuntu 14.04 c помощью docker-compose. Рассмотрим запуск, схему для compose и примеры подключения к созданному контейнеру MySQL.

31 Октября 2018

Анализ нагруженых частей Php кода с помощью xhprof

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

Категории

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

Теги

Ubuntu 14.04 (14) Софт (9) Gearman (3) Сервисы (2) Framework (1) MVC (1) Php 5.6 (14) Cli (2) Propel (3) ORM (3) JavaScript (5) Css (1) Composer (4) Docker (3) Seo (4) MySQL (5) docker-compose (2) CentOS (1) 1С (1) Memcache (1) Memcached (1) Php 7 (4) Анализ (2) Ubuntu 18.04 (9) MySQL 5.7 (4) Генерация (2) Bower (1) Npm (1) NodeJs (3) Gulp (1) ImageCMS (2) Базы (1) JQuery (1) Сниппет (1)

Последние комментарии

tedy1, можно в index.php включить режим отладки и ...
root-i
18.03.21
Поставил версию PHP 5.6 и всеравно ломаются стили ...
tedy1
16.03.21
Игорь, скорее всего так определяет сам sourcebuste...
root-i
16.12.20
Не могу разобраться почему скрипт определяет перех...
Игорь
16.12.20

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

Благодарность, на продолжение работы сайта:
Контакты

Обратная связь

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

  • Вход
  • Регистрация

Сайт работает на chmod -R