Symfony Propel Pager - как правильно отправить пользовательский запрос MySQL? - PullRequest
3 голосов
/ 01 февраля 2010

Вот запрос, который мне нужно выполнить

ВЫБРАТЬ ЗАМЕНИТЬ (ЗАМЕНИТЬ (SUBSTRING_INDEX (LOWER (table.url), '/', 3), 'www.', ''), 'http://',' ') КАК домен из таблицы GROUP BY domain

Но у меня проблемы с передачей запроса на пейджер Propel в качестве критерия. Я надеялся, что это сработает.

$ attribute-> addSelectColumn ('SUBSTRING_INDEX ('. TablePeer :: URL. ', \' / \ ', 3) AS table');

Но, к сожалению, это не так. Любые идеи, как я мог бы передать это с помощью метода критериев?

UPDATE

Для тех, кто заинтересован, вот что получилось, спасибо!

$ attribute-> addAsColumn ('domain', 'SUBSTRING_INDEX ('. TablePeer :: URL. ', \' / \ ', 3)');
$ Criteria-> addGroupByColumn ( 'домен');

1 Ответ

3 голосов
/ 01 февраля 2010

Вам нужно использовать некоторую комбинацию Criteria::CUSTOM и addAsColumn в вашем объекте критериев - вам, очевидно, также необходимо использовать doSelectRs (<= 1.2) или <code>doSelectStmt (> = 1.3). Я не уверен, что точная формулировка была бы, но это может привести вас в правильном направлении (обратите внимание, что ссылка предназначена для версии 1.2, поэтому обновите sysntaxt / api по мере необходимости для версии 1.3 или 1.4).

http://stereointeractive.com/blog/2009/07/21/propel-criteria-on-custom-columns-with-addascolumn/

...