@symfony_php

Страница 336 из 1418
Arky
14.10.2017
12:03:21
Надо теперь связь удалить)

Егор
14.10.2017
12:03:28
Пример в гисте интересный, жду статью.

Arky
14.10.2017
12:04:59
Для этого надо убрать связь в сущностях и сделать schema:update?

ну вот, разобрался?
Да, вроде разобрался. Спасибо огромное)

Google
Sergey
14.10.2017
12:08:39
ну или миграции если ты через них делаешь

Пример в гисте интересный, жду статью.
ну вот думаю сначала попробовать покрутить мысль в духе "если вам надо за раз обновить все поля сущности - значит вам нужна новая сущность".

это сильно уменьшает необходимость в сеттерах

ну мол от сеттеров уходить относительно не сложно - сложнее от геттеров уйти - тут майнд шифт нужен уже серьезнее

Arky
14.10.2017
13:05:00
А как узнать айди того кто оставил комментарий/пост? :s

Sergey
14.10.2017
13:17:35
у тебя есть автор, он знает все

Arky
14.10.2017
13:19:57
у тебя есть автор, он знает все
Ну у меня есть авторизация. Как чтобы доктрина через сессию узнала айди авторизованного пользователя? Или как это называется)))

Dmitriy
14.10.2017
13:21:37
$comment = $author->addComment($text) или $comment = new Comment($author, $text)? ))

Dmitriy
14.10.2017
13:31:18
авторизованный пользователь например

Arky
14.10.2017
13:33:45
Как его получить?)

Алексей
14.10.2017
13:35:32
$container->get(TokenStorageInterface::class)->getToken()->getUser();

Google
Arky
14.10.2017
13:46:32
https://puu.sh/xXVoM/14d20830f3.png

Алексей
14.10.2017
13:49:19
Версия симфони? Вообще это гуглится за 1 минуту

Sergey
14.10.2017
13:49:48
короч в доки

там все есть

Sergey
14.10.2017
13:53:01
поищи еще

все там есть

Алексей
14.10.2017
13:53:39
У тебя не достается сервис, гугли в этом направлении

Arky
14.10.2017
13:53:51
Хорошо, буду искать)

Ну он говорит что его вообще не существует)

Danil
14.10.2017
14:11:57
посомтри уроки от knpuniversity по симфони

сразу все эти пробелы закроешь

Arky
14.10.2017
16:58:08
поищи еще
Не нашел(

https://puu.sh/xY2am/791d7f3f6c.png

оказца можно просто так сделать)

Sergey
15.10.2017
09:06:48
Arky
15.10.2017
12:02:40
вот видишь)
Да) Запилил блог. Теперь не знаю что пилить... То ли функционал какой-нибудь для блога, то ли что-то новое.

Sergey
15.10.2017
12:04:04
шоп с картом пили

Google
Sergey
15.10.2017
12:04:14
это скучно

запили механизм заказа статей в блог

что бы проплаченный статьи было удобнее заказывать

Arky
15.10.2017
12:05:54
Запилить механизм для проплачивания статей?)

Sergey
15.10.2017
12:10:55
над сделать на гитхабе репос с разными вариациями проектов, которые можно запилить

хотя встречал вроде подобное

Arky
15.10.2017
12:18:02
Значит шоп с картом?)

Dmitriy
15.10.2017
12:21:15
Ага и каталог чтоб с опциями был )

Sergey
15.10.2017
12:22:28
каталог вообще можно спарсить с какого-то магазина

Alan
15.10.2017
12:44:45
и бизнес аналитику на это с кликхаусом повесить

Arky
15.10.2017
12:44:52
Хардкорно будет) Есть какие-нибудь фронтенд шаблоны магазина чтоб на нем бек пилить?)

Alan
15.10.2017
12:45:05
время на сайте до первой проплаченной статьи ))

?
15.10.2017
13:42:36
https://symfony.fi/entry/php-7-1-vs-7-2-benchmarks-with-docker-and-symfony-flex

Dmitry
15.10.2017
18:16:54
Интересно, есть ли уже существующие методы в symfony/doctrine для того, чтобы скопировать все свойства из одной сущности в другую?

Roman
15.10.2017
18:18:19
__clone() же

Dmitry
15.10.2017
18:18:51
чтобы не модифицировать сами сущности

Aleksandr
15.10.2017
18:19:01
ответ выше

Dmitry
15.10.2017
18:19:42
хм... сейчас попробую

Aleksandr
15.10.2017
18:20:05
$var2 = clone $var1

Google
Aleksandr
15.10.2017
18:20:35
и потом попробуй изменить свойства в новой сущности и проверить что в первой все хорошо

Dmitriy
15.10.2017
18:24:09
а вообще clone это костыль какой-то имхо

Roman
15.10.2017
18:24:16
есть еще либа DeepClone

кажется так называется

Dmitry
15.10.2017
18:24:47
я понял.. но, есть проблема с ID: получаю с бд сущность $role = $this->getDoctrine()->getRepository(Role::class)->find(1); далее из другого объекта $new = new Role(); $new->setRole('ROLE_USER'); нужно перенести значения свойств в $role но ID не будет заполнятся в $new, т.к. в сущностях не делаю методов setId

Dmitriy
15.10.2017
18:26:07
ты городишь какое то говно

Roman
15.10.2017
18:26:09
переопределите в сущности __clone и там обнулите айди

если я правильно понял проблему

Admin
ERROR: S client not available

Aleksandr
15.10.2017
18:27:09
ты городишь какое то говно
вот тоже есть такое ощущение

чего хочешь-то?

Andrew
15.10.2017
18:28:08
в доктриновских проксях в клоне айдишник и так обнуляется

Dmitry
15.10.2017
18:30:59
в том и дело, что нужно сделать не трогая сущности в общем ситуация такая: есть action в контролере /** * @Configuration\Route("/{role}", name="app.roles.update") * @Configuration\Method("PUT") */ public function updateAction(Role $role) { $this->getDoctrine()->getRepository(Role::class)->update($role); return $role; } в $role получаю сущность из бд в запросе посылается json с измененными свойствами { "id": 1, "role": "ROLE_USER_2" } нужно из этого запроса подставить все свойства в $role

сейчас сделал, чтобы создавалась сущность Role из тела запроса, но ID не заполняется (т.к. нету метода setId), ну и не особо нужно т.к. нужно перенести все свойства кроме ID в $role

Dmitry
15.10.2017
18:33:49
могу заменить $role на новый объект сущности созданный из запроса, но в нем не будет ID

Andrew
15.10.2017
18:34:59
В UnitOfWork есть все для этого

Dmitry
15.10.2017
18:35:01
новый объект создаю так: $object = $this->serializer->deserialize( $request->getContent(), $configuration->getClass(), $request->getContentType() );

сейчас гляну в эту сторону

А сериализатор symfony вообще умеет десериализировать доктриновские сущности, вытягивая изначально данные из бд а затем заполняя данными? или это только у jms сериализаторе есть?

Google
Dmitry
15.10.2017
22:43:02
к примеру: есть сущность User с полями id, username, email и запись в бд 123|test|my@email.com и если мы пытаемся десириализировать $serializer->deserialize('{"id": 123, "username": "demo"}', 'AppBundle\Entity\Document', 'json'); и получим объект с id: 123, username: demo, email: my@email.com

а по дефолту не умеет, нету такого нормалайзера?

Sergey
15.10.2017
22:43:58
а по дефолту не умеет, нету такого нормалайзера?
нету, в целом это даже хорошо. Не стоит десериализовывать напрямую в сущность

я нагуглил пару бандлов/примерок которые делают то что тебе надо - но ссылку давать не буду)

лучше десериализовывать запросы на какие-то dto и уже нормально с сущностями работать

Dmitry
15.10.2017
22:44:45
если есть - буду искать, спасибо )))

Sergey
15.10.2017
22:44:57
просто у меня тогда вопрос - нахер тебе доктрина то?

https://github.com/wouterj/WouterJEloquentBundle

вон берешь и гоняешь свои таблички в json и обратно

или Api-Platform глянуть можешь

(хотя та же хрень)

Dmitry
15.10.2017
22:47:13
смысл какой: приходит в экшен json-запрос с данными сущности, нужно получить сущность из бд, запихнуть в сущность эти данные, которые пришли затем валидируем сущность и сохраняем в экшене можем работать с изменной сущностью и с оригинальной к примеру: public function updateAction(Role $role, Role $updated)

Sergey
15.10.2017
22:47:51
неужто все дело в том что оно из коробки просто шло?)

ну короч твой подход работает на простых проектах которые редко меняются. Если у тебя такой - тогда все ок

Dmitry
15.10.2017
22:48:46
просто делаю API, и многие операции хочу сократить

изменение сущностей - много занимает кода

Страница 336 из 1418