@symfony_ru

Страница 47 из 138
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
Dan, Нельзя ругаться! [Предупреждений 1/5]
Модер, я в списочек твоему чату приписочку сделал. Будешь плохо себя вести - нахер оттуда поедешь ?

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

Страница 47 из 138