
Erzhigit
19.04.2017
17:41:37
а все исправил не / , а обратно \

Dmitry
19.04.2017
17:42:14
'category/<\d+>'

Erzhigit
19.04.2017
17:44:22

Dmitry
19.04.2017
18:02:05
глянул щас один наш легаси... ну как легаси, лет 5 в активной разработке... в проде сайт по разделам собирается из 5 веток (в отдельных директориях)... и еще 8 веток для доступа к старым версиям по АБ кукам...

Google

Dmitry
19.04.2017
20:32:15
Есть сущности А - (m1) - B - (1m) - C. Т.е. по сути А - С как many-many, но связка через сущность B. Мне нужно получить все А и только те B, у которых есть связь на С (она с условием). Т.е. в идеале что-то вроде A left join B on A.id=B.a_id inner join C on B.c_id=C.id AND C.field = true. Понятно, что это не работает, inner ломает и вывод А. Т.е. если по второй связи ничего нет, то я не получу ничего, а должен получить список A. Вот думаю, а вообще скобки что-то значат в джойнах? я как-то никогда их не юзал поему-то....
о, да, работают... осталось это как-то на DQL перевести....
Не, лано.. это все фигня... как мне в доктрине при выборке сущности Б подлепить туда сущность С через inner join? Вопрос не про DQL, а просто когда мы делаем А->getБ(): array
fetch: EAGER что-то ваше непонятно что делает...

Сергей
19.04.2017
20:50:45
createQueryBuilder('a')->addSelect('b, c')...

Dmitry
19.04.2017
20:51:41
в каком месте, блин. Говорю же, есть А, я прошу - А->getБ. - доктрина сама инициализирует ленивую коллекцию Б
и в момент иницализации - тянет из базы Б....

Сергей
19.04.2017
20:52:30
когда запрашиваешь A в этот момент добавить с селект Б и С

Dmitry
19.04.2017
20:53:25
не могу... вернее могу, но получается много кода... ибо DQL этого не может, что мне нужно, только если на чистый SQL переходить

Сергей
19.04.2017
20:53:45
покажи запрос

Dmitry
19.04.2017
20:54:02
да я там выше писал
А и С - как м2м... Б - это их связка

Google

Dmitry
19.04.2017
20:54:36
Б не должно существовать без связи на С
проблема в том, что на эту связь С через filters навешиваются еще условия

Сергей
19.04.2017
20:55:53
А без Б может быть?

Dmitry
19.04.2017
20:56:17
Не принципиально, таких запросов не будет, всегда от А идем
Типа, А - фотки, Б - точки на фотке, С - что это за точка, название, скажем... устройство... хз

Сергей
19.04.2017
20:57:20
https://pastebin.com/SzrQ67fN
это в репозитории если писать

Dmitry
19.04.2017
20:58:23
Вот проблема в том, что если у нас одна точка... и у этой точки по условию получаем false, то мы не выбираем и А...
Ну т.е. в SQL мне нужно что-то типа FROM a LEFT JOIN (b INNER JOIN c ON b=c AND c.active = true) ON b=a ...
Как вот такое получить DQL - я хз ;) По-этому решил пойти более простым путем, и заодно решить проблему, если где-то кто-то забыл прописать в репозитории такую вот выборку и просто получил А

Сергей
19.04.2017
21:07:15

Dmitry
19.04.2017
21:07:30
пофиг, А должно быть всегда, с точками или без
короче походу просто сделаю еще один фильтр на Б... иначе много гимора, а у меня хотфикс ;)

Сергей
19.04.2017
21:08:30
может в джоин С добавить условие только c,active - true?
тогда b не попадет в A

Dmitry
19.04.2017
21:10:21
ну я это и хочу... но проблема в том, что если это DQL выборки А - то нужно писать выборку со скобками, как я выше написал... в DQL я не вижу как это сделать, а опускаться на SQL пока не хочу...
А если выборку А оставить как выборку А только, что бы Б хваталось на лету селектом, то не знакю, как сказать доктрине - "если кто-то запрашивает сущность Б - лепи туда inner join-ом сущность С всегда"

Сергей
19.04.2017
21:11:43
return $this->createQueryBuilder('a')
->addSelect('b, c')
->leftJoin('a.b', 'b')
->join('b.c', 'c', JOIN::WITH, 'c.active = true')
->getQuery()
->getResult();

Dmitry
19.04.2017
21:14:43
ну могу попробовать.. хотя не люблю я этот кверибилдер...
Не, как я и предполагал, этот запрос разворачивается в FROM a LEFT JOIN b ON a.id=b.a_id INNER JOIN c ON c.id=b.c_id AND c.active = true

Google

Dmitry
19.04.2017
21:23:10
В итоге мы ничего не получаем, ибо inner join - это связка для а... в итоге а - пустое
Что бы работало, должно быть FROM a LEFT JOIN (b INNER JOIN c ON c.id=b.c_id AND c.active = true) ON a.id=b.a_id
т.е. внутри связка б и с, и потом уже результат - как left на а

Pavel
19.04.2017
22:00:43
Сделай вьюху с внутренней выборкой

Dmitry
19.04.2017
22:12:49
как вариант, да... только придется еще триггеры вешать или опять мудрить в доктрине, туда и на запись есть операции
но вообще-то идея, да..., спасибо

Pavel
19.04.2017
22:14:33
а у тебя постгрес?

Dmitry
19.04.2017
22:14:37
угу

Pavel
19.04.2017
22:15:16
О так там же есть именованные выражения, хотя это уже уровень sql

Dmitry
19.04.2017
22:15:50
в постгресе или доктрине? :)

Pavel
19.04.2017
22:16:05
В доктрине нету скорее всего
С постгресом она выглядит.ю неуклюжей и недопиленной

Dmitry
19.04.2017
22:16:38
ну там есть какие-то namedQuery, но не юзал ваще..

Pavel
19.04.2017
22:17:50
https://www.postgresql.org/docs/9.4/static/queries-with.html я ошибся, это по другому называется

Dmitry
19.04.2017
22:28:55
А ну это хорошая штука, но на SQL то и так понятно, как делать. Вообще хочется именно в запрос влезть, который при обращении к ленивой коллекции делается, что бы совсем прозрачно было

dot
20.04.2017
04:43:30
Слушайте вот этот код <script>
$(document).ready(function() {
$('table').filterTable(); //if this code appears after your tables; otherwise, include it in your document.ready() code.
}
</script> выполнится же только после того как документ будет щагружен ?

Admin
ERROR: S client not available

Aleksey
20.04.2017
04:45:27
если ready это функция jquery — да

dot
20.04.2017
05:00:09
хмм значит все правильно

dypa
20.04.2017
05:20:24
>https://telegram.me/phpclubru > 400 экспертов в онлайн
наглая ложь, сейчас на канале 430 человек из них экспертов 429. я пхп не знаю на уровне эксперта :)

Google

Toha
20.04.2017
05:21:41
а это тупо замануха

Alexandr
20.04.2017
05:32:44
ну ды >=

Alexey
20.04.2017
05:33:26
Нужно провести перепись экспертов

Alexandr
20.04.2017
05:33:34
Интересно доберем до 500?

Alexey
20.04.2017
05:33:50
Но сперва выработать критерии определения эксперта

Alexandr
20.04.2017
05:33:57
Тут все просто бота - для экзаменовки завести - делов то

Damir
20.04.2017
06:59:10
Каждый эксперт должен написать своего бота для тестирования на эксперта. Не написал бота - не эксперт.

Sparrow
20.04.2017
07:11:43
Junior <Ваш подован))

Алексей
20.04.2017
07:12:48

Sparrow
20.04.2017
07:14:51
10лет ждала, дождалась..

Grigori
20.04.2017
07:24:16
картинки не постим

Sparrow
20.04.2017
07:24:54
У вас прикольная бабочка ))
?

Виталий
20.04.2017
08:09:26
Всем привет! у меня одного логин пароль перестал подходить и восстановление пароля не работает? на phpclub.ru

Alexandr
20.04.2017
08:11:24
https://

Jim
20.04.2017
09:27:39
Добрый день

Максим
20.04.2017
09:27:56

Jim
20.04.2017
09:27:59
Здесь можно публиковать объявления насчет работы?

Eugene
20.04.2017
09:31:00
Публикуют. Только с обязательным указанием вилки ЗП. Желательна ссылка на подробное описание, тут простыни админ не любит

Jim
20.04.2017
09:33:20
спсб.

Google

Alexandr
20.04.2017
09:57:27
Сначала публикуете сюда - развернуто - потом ссулку можно дать https://phpclub.ru/talk/forums/9/