getTickets и фильтрация тикетов по tv
Всем привет!
Василий, хотелось бы узнать у тебя про такой момент.
С компонентом Tickets только начал разбираться, может быть ход мыслей где-то будет неверен…
Вот ты говорил, что getTickets не умеет работать с TV. По коду сниппета это понятно, да :-)
Но вот надо вывести тикеты вместе с парочкой tv-шек да и ещё и отфильтровать по ним. TV параметры самые обыкновенные, т.е. мне просто нужно получить ячейку со значением, приджойнив таблицу с tv.
По логике ничто не мешает мне дописать в сниппет:
Ну, естественно, добавив параметры вызова, что-то вроде &useTVs=`true` и &whereTV=`{«json»:«string»}`
и подкорректировать сниппет, чтобы в запросе таблицу с TV джойнить только при необходимости (useTVs == true) и сливать $where с $whereTV.
Кажется мне, что проблем возникнуть не должно.
Время сейчас раннее, пробовать буду позже, поэтому решил вот узнать.
Внимание вопрос.
А взлетит?
Ну т.е. ты же не включил работу с tv не просто так? Наверняка были ведь какие-то весомые причины, о которых я ещё не знаю? Возможно не только из-за тормознутости и лишней нагрузки, может было что-то ещё. Есть ли какие-то подводные камни, из-за которых вышеописанный способ может не сработать? Или идея норм и флаг в руки и вперёд? :-)
Василий, хотелось бы узнать у тебя про такой момент.
С компонентом Tickets только начал разбираться, может быть ход мыслей где-то будет неверен…
Вот ты говорил, что getTickets не умеет работать с TV. По коду сниппета это понятно, да :-)
Но вот надо вывести тикеты вместе с парочкой tv-шек да и ещё и отфильтровать по ним. TV параметры самые обыкновенные, т.е. мне просто нужно получить ячейку со значением, приджойнив таблицу с tv.
По логике ничто не мешает мне дописать в сниппет:
,'leftJoin' => '[
...
]'
/**
* вот это:
*/
,'innerJoin' => '[
{"class":"modTemplateVarResource","alias":"TVs","on":"Ticket.id=TVs.contentid"}
]'
/**/
,'select' => '{
...
}'
Ну, естественно, добавив параметры вызова, что-то вроде &useTVs=`true` и &whereTV=`{«json»:«string»}`
и подкорректировать сниппет, чтобы в запросе таблицу с TV джойнить только при необходимости (useTVs == true) и сливать $where с $whereTV.
Кажется мне, что проблем возникнуть не должно.
Время сейчас раннее, пробовать буду позже, поэтому решил вот узнать.
Внимание вопрос.
А взлетит?
Ну т.е. ты же не включил работу с tv не просто так? Наверняка были ведь какие-то весомые причины, о которых я ещё не знаю? Возможно не только из-за тормознутости и лишней нагрузки, может было что-то ещё. Есть ли какие-то подводные камни, из-за которых вышеописанный способ может не сработать? Или идея норм и флаг в руки и вперёд? :-)
Комментарии: 5
Каждый ТВ — это одна астрока в таблице.
Нужно 2 ТВ — таблицу придется джойнить 2 раза. Если получать ТВ по такой схеме, то рано или поздно будут тормоза джойнов, поэтому я и не стал делать работу с ТВ.
Вообще не люблю ими пользоваться, и чуть позже опишу способ, как обходиться без них, при выборке.
Нужно 2 ТВ — таблицу придется джойнить 2 раза. Если получать ТВ по такой схеме, то рано или поздно будут тормоза джойнов, поэтому я и не стал делать работу с ТВ.
Вообще не люблю ими пользоваться, и чуть позже опишу способ, как обходиться без них, при выборке.
Хм, фильтр по доп. параметрам без tv? Интересно… :-)
Прям с нетерпением жду)
Прям с нетерпением жду)
Присоединяюсь
Тоже хотел бы узнать способ, как обходиться без ТВ, при выборке.
Тоже хотел бы узнать способ, как обходиться без ТВ, при выборке.
bezumkin.ru/sections/tips_and_tricks/657/
Только фильтровать не осень удобно выйдет, но можно, в теории.
Только фильтровать не осень удобно выйдет, но можно, в теории.
Для понимания общего смысла сказанного Василием, достаточно потратить 15 минут личного времени и хотя бы просто познакомиться с сущностью принципа работы TV. Или иногда, «ради смеха», проводить параллели с уже не раз писавшимся.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.