
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)? ))

Arky
14.10.2017
13:25:58

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

Sergey
14.10.2017
13:38:08

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
короч в доки
там все есть

Arky
14.10.2017
13:51:19

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

Andrew
15.10.2017
18:33:42

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

Sergey
15.10.2017
22:42:09
https://gist.github.com/alexandresalome/3836801
вот пример

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, и многие операции хочу сократить
изменение сущностей - много занимает кода