
Aleksey
05.12.2016
08:09:36
вам нужно делать не через EM DQL

Дмитрий
05.12.2016
08:10:22
а как?

Ivan
05.12.2016
08:12:02
$this->getEntityManager()->getConnection()->exec($query)

Sergey
05.12.2016
08:15:42

Google

Ivan
05.12.2016
08:15:59
ну да, он же sql пытается выполнить

Sergey
05.12.2016
08:16:14
а ну да)
не заметил)

Daniel
05.12.2016
08:16:36
http://joxi.ru/LmG46YgU8gEx2l
Нафига так делать?
http://joxi.ru/LmG46YgU8gEx2l.jpg
Кому лень открывать

Дмитрий
05.12.2016
08:19:14

Ivan
05.12.2016
10:44:56
как получить связанный массив при таком запросе?
$this->makeQueryBuilder();
$page = $this->qb->where($this->qb->expr()->eq('t.fullUrl', ':fullUrl'))
->setParameter('fullUrl', $fullPath)
->getQuery()
->getResult(Query::HYDRATE_ARRAY);
Если убрать Query::HYDRATE_ARRAY то есть связанная коллекция children, а при гидрации он не появляется. Таблица pages, отдельные записи котрой могут быть вложенными через parent_id
т.е. связанна сама с собой
мне просто результат надо выводить в json, поэтому использую Query::HYDRATE_ARRAY

Ivan
05.12.2016
10:58:44
Ivan, добавлены в select children?

Ivan
05.12.2016
10:59:07
хмм, нет

Google

Ivan
05.12.2016
10:59:47
у меня в Page Entity прописано
/**
* @ORM\OneToMany(targetEntity="Page", mappedBy="parent", fetch="EAGER")
*/
protected $children;

Ivan
05.12.2016
11:00:02
это не имеет значения в данном случае

Ivan
05.12.2016
11:59:52
подскажите, плиз, так норм?
https://gist.github.com/ElCoyote85/84fd22bd822c51a746212cb75266afce

Ivan
05.12.2016
12:06:57
а зачем $this->qb ?
почему не $qb = $this->makeQueryBuilder() ?

Ivan
05.12.2016
12:08:46
там просто такая проверка стоит
protected function makeQueryBuilder()
{
if(!$this->qb) {
$this->qb = $this->createQueryBuilder($this->alias);
}
return $this->qb;
}
это в базовом асбтракто классе, на случай когда надо аккумулировать фильтры

Ivan
05.12.2016
12:11:00
состояние у репозитория наверное не очень хорошо
а почему children отдельно берутся, если есть page one-to-many children ?
$qb->leftJoin('page.children', 'child')->addSelect('child');

Ivan
05.12.2016
12:15:46
обновил гист на Page и абстрактный базовый класс
вот я и пытаюсь понять как сделать запросом и получить array типа:
['page' => ['title' => '', 'content' => ''], 'children' => [0 =>[...], 1 => [...]], 'parent' => [...] ]

Ivan
05.12.2016
12:22:56
$page = $this->qb->where('t.fullUrl = :fullUrl')
->leftJoin('t.children', 'child')->addSelect('child')
->setParameter('fullUrl', $fullPath)
->getQuery()
->getOneOrNullResult(Query::HYDRATE_ARRAY);

Ivan
05.12.2016
12:27:12
хмм..
щас попробую
Воу, тёзка, работает! Спасибо огромное! Теперь буду пытаться понять как это работает)

ModerBot
05.12.2016
15:15:55
Привет, Sublime Bot! Пожалуйста соблюдай правила и не ругайся
/help@AngryModerBot

Yuriy
05.12.2016
15:18:06
/help@AngryModerBot

ModerBot
05.12.2016
15:18:07
Я бот-модератор для чатов, помогу тебе следить за ними пока тебя нет
Что я могу?
• Приветствовать новых участников чата
• Предупреждать и банить пользователей за мат в чате
• Вести статистику по сообщениям, по забаненным участникам чата
• Устраивать голосование за бан
Что бы я мог банить в чатах - мне нужно выдать права администратора (Делается как и с людьми, но по нику)
Присоединяйся к веселому общению в International Chat! Нажми и начинай общаться! @ICGroup
Привет, finkel! Пожалуйста соблюдай правила и не ругайся
/help@AngryModerBot

Google

finkel
05.12.2016
17:31:51
всем привет)
Подскажите, может кто сталкивался?
В двух словах, есть 2 класса сущностей, абстрактная сущность BaseUser и реализация User, надо сделать CRUD для сущности User.
Маппинг доктрины для всех свойств описан в xml, к сущности BaseUser, у сущности User описан маппинг только для одного свойства. SonataAdmin не видит маппинг родительского класса, другими словами, считает что у сущности User только одно свойство.
Причем если переносим маппинг в xml для класса User, то все работает

Kirill
05.12.2016
18:36:10
а другие сущности есть в бандле? как у них маппинг описан?
может я ошибаюсь, но кажется в рамках одного бандла можно маппинг описывать только одним способом для всех сущностей.
например если у одной xml, у другой аннотациями не получится сделать

finkel
05.12.2016
18:38:28
абстрактный класс из другого бандла, но тоже xml
если в маппинге наследника пытаешься описать свойства еще раз, доктрина ругается
если переносишь маппинг, с родителя на наследника, то все ок, но это не правильно
причем пробовал продублировать маппинг через attribute-overrides, он два раз его парсит и второй раз не видит маппинг родителя и выдает ошибку мол нечего оверрайдить, причем парсит два раза только если подрубаем сонату к сущности.
сейчас буду пытаться воспроизвести на чистом проекте

Salavat
05.12.2016
18:47:18
У меня на чисто на аннотациях без сонаты работает нормально
Есть абстрактный класс где усе описано
От него дочерние - описываю только отдельные поля и все работает вроде как

finkel
05.12.2016
18:47:53
На xml тоже хорошо все работает, может админ сервис описал криво
ну или баг в сонате, но скорее я рукожоп

Kirill
05.12.2016
18:49:07
http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/inheritance-mapping.html

finkel
05.12.2016
18:49:47
я просто спросил, может известный баг какой или фича

Google

Kirill
05.12.2016
18:50:08
mapped superclass задан у абстрактного класса?

finkel
05.12.2016
18:50:13
угу
абстрактный класс это fos/user
у него 100% все ок

Kirill
05.12.2016
20:06:01
ну раз у тебя соната, можно для примера посмотреть как сделано в sonata user bundle. он же как раз расширет fos user. там и админка есть

finkel
05.12.2016
20:13:23
развернул чистую симфони, сделал наследование, все ок

Admin
ERROR: S client not available

finkel
05.12.2016
20:13:34
где-то я нарукожопил
буду смотреть завтра

Aleserche
06.12.2016
03:27:12
Как найдешь, дай знать

Ivan
06.12.2016
09:38:18
если нужно принимать простые query string имеет ли смысл использовать FosRestBundle или можно обойтись стандартным doSomeAction(Request $request)?
будет использоваться как АПИ
ааа, в FRB можно юзать wildcard в аннотациях, гуд-гуд

Artem
06.12.2016
12:25:32
Кто-нибудь в курсе что за зверь этот Flex
https://www.symfony.fi/entry/symfony-flex-to-enable-rad-rapid-application-development

Ivan
06.12.2016
12:25:58
можно ли как-то сделать query string placeholders в аннотациях без использования FOSRestBundle? А то последний не предсказуемый какой-то

ModerBot
06.12.2016
16:17:23
Привет, Andrew! Пожалуйста соблюдай правила и не ругайся
/help@AngryModerBot
Привет, Dan! Пожалуйста соблюдай правила и не ругайся
/help@AngryModerBot

Dan
06.12.2016
18:08:15
привет оркестр. в двух словах, в чём ваше отличие от @symfony_php ?
а, всё, разобрался. тут слова жопа и хyй говорить нельзя, а там можно. спасибо.

ModerBot
06.12.2016
18:17:52

Google

Dan
06.12.2016
18:18:37

Fayozjon [CybernatiC]
06.12.2016
18:18:40
/me

ModerBot
06.12.2016
18:19:09
?Fayozjon [CybernatiC] Berdiev?
?Статистика с ?02.12.2016 22:09
⚠Предупреждений: 4
?Сообщений обработано: ?119
?Слов написано: ?421

Dmitriy
06.12.2016
18:19:12
/me

ModerBot
06.12.2016
18:19:12
?Dmitriy Kuts?
?Статистика с ?02.12.2016 22:28
⚠Предупреждений: 1
?Сообщений обработано: ?29
?Слов написано: ?147

Fayozjon [CybernatiC]
06.12.2016
18:19:15
смотри до меня докатишься )

Dmitriy
06.12.2016
18:19:31

Dan
06.12.2016
18:19:33
не, я по симфонии уже давно не угораю

Fayozjon [CybernatiC]
06.12.2016
18:19:37
???

Dan
06.12.2016
18:19:40
я так, зашёл разузнать что и как

Dmitriy
06.12.2016
18:19:50
все живы здоровы. спс

Dan
06.12.2016
18:19:57
?
всем кодить! я ушёл )

Sergey
06.12.2016
20:35:43
тут есть ларавельщики?
или симфонисты которые перешли на ларавель + доктрину?

Dmitriy
06.12.2016
20:46:01