Новости Joomla

Совет по Joomla: $db->getQuery(true) стал устаревшим

Совет по Joomla: $db->getQuery(true) стал устаревшим

👩‍💻 Совет по Joomla: $db->getQuery(true) стал устаревшим.Раньше при создании запросов в базу данных мы всегда получали объект запроса с помощью метода

getQuery(). Если передавался параметр
$new =
true, то получали новый запрос. Если без - последний.

use Joomla\CMS\Factory;$db = Factory::getContainer()->get('DatabaseDriver');$query = $db->getQuery(new: true);// и строим запрос
Под капот Joomla 4 вошёл Joomla Framework (PHP фреймворк а-ля Laravel, Yii и т.д.), а для Joomla 5 он обновился - версия 3.4.1 вышла 6 октября 2023г. В методе фреймворка есть примечание о том, что параметр
$new, который передавался в метод
getQuery() помечен как устаревший и будет удалён в версии фреймворка 4.0.
The parameter $new is deprecated and will be removed in 4.0, use %s::createQuery() instead.В Joomla 4 версия Joomla Framework была 2.x., в Joomla 5 - 3.x. Поэтому есть предположение, что с выходом Joomla 6 обновится и версия фреймворка - станет 4.0. Поэтому для получения объекта для новых запросов следует использовать метод
createQuery(). Он уже представлен в ядре и широко используется. При этом метод
getQuery() останется, но, скорее всего, будет выполнять функцию только геттера - получения текущего запроса.
@joomlafeed#joomla #php #разработка

0 Пользователей и 1 Гость просматривают эту тему.
  • 3 Ответов
  • 2806 Просмотров
*

dmsoh

  • Захожу иногда
  • 195
  • 8 / 0
По теме

поставил модуль поиска с этого же форума, в котором помимо марки/модели задается год,  город, цена ну и признак "только новые"

Никак не могу заставить работать фильтр по цене и по признаку "только новые".

Стоит последняя версия компонента REV 2.0.3.

Ссылка выглядит следующим образом

index.php?option=com_autobb&task=list&cat=2&v=0&ct=0&y1=0&y2=0&p1=1000&p2=5000&onlyNew=1&d=0&Itemid=6
Результат - пустой список.

Если говорить о сайте проавтомобили.ру:

index.php?option=com_autobb&task=list&cat=17&v=0&p1=200000&p2=350000&Itemid=27
этот вызов работает нормально. фильтр по новым автомобилям также  работает.

Как я понимаю дело не в модуле, а именно в компоненте. Но код компонента я не изменял.

Может кто сталкивался?
« Последнее редактирование: 28.07.2008, 20:54:03 от dmsoh »
*

Alex Revo

  • Moderator
  • 1995
  • 109 / 0
А расширенный поиск в самом компоненте у тебя работает?
*

dmsoh

  • Захожу иногда
  • 195
  • 8 / 0
А расширенный поиск в самом компоненте у тебя работает?

похоже, что тоже не работает.
*

dmsoh

  • Захожу иногда
  • 195
  • 8 / 0
похоже, что тоже не работает.


Код
if($p1){ $where[] = "a.price*cur.rate>=($p1*$cr)"; $searchParam .= "&p1=$p1&cr=$cr"; } // фильтр по нижней ценовой планке
if($p2){ $where[] = "a.price*cur.rate<=($p2*$cr)"; $searchParam .= "&p2=$p2&cr=$cr"; } // фильтр по верхней ценовой планке

Все оказалось просто и банально. насоздавал я валют,  а  про курсы валют совсем забыл - везде 0 установлен был. ($p1*$cr) = 0.



Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль поиска

Автор zed111

Ответов: 0
Просмотров: 4540
Последний ответ 23.09.2013, 15:05:04
от zed111
Модуль AutoBB ломает шаблон. как исправить?

Автор exanson

Ответов: 2
Просмотров: 5410
Последний ответ 20.06.2013, 19:39:12
от exanson
Модуль быстрого поиска для Joomla 1.5

Автор Dolphin

Ответов: 25
Просмотров: 10476
Последний ответ 03.05.2013, 00:10:16
от htmlcss
Публикация модуля поиска на определеных страницах

Автор digor1

Ответов: 0
Просмотров: 1985
Последний ответ 08.03.2013, 16:33:22
от digor1
Заказной размер, модуль последние объявлкния

Автор Vasy112

Ответов: 2
Просмотров: 1955
Последний ответ 13.01.2013, 19:38:03
от htmlcss