Группировка условий в запросе 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
  • Создать интернет-магазин
  • Документация
  • Блог
    • 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
513
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

Теги

Ubuntu 14.04 (15) Софт (11) Gearman (3) Сервисы (2) Framework (1) MVC (1) Php 5.6 (15) 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 (5) Анализ (2) Ubuntu 18.04 (11) MySQL 5.7 (4) Генерация (2) Bower (1) Npm (1) NodeJs (3) Gulp (1) ImageCMS (2) Базы (1) JQuery (1) Сниппет (1)

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

Как вариант это может происходить из-за неизвестно...
root-i
21.01.22
Чтобы убрать ошибку Uncaught TypeError: $ is not a...
wlad2.ru
11.01.22
Спасибо!
Артём
04.09.21
tedy1, можно в index.php включить режим отладки и ...
root-i
18.03.21

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

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

Telegram Viber Mail

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

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

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