
Adel
23.02.2018
14:45:13
Ребят, как можно через Eloquent сделать такой запрос?
UPDATE `users` SET `bonus` = (`bonus` - 5) FROM `users_promocodes` WHERE `users_promocodes.user_id`= `users.id` AND `users_promocodes.promocode_id` = 10`
Модели: User, Promocode и UserPromocode
т.е. обновить у всех?
Есть таблица `users`, `promocodes` и `users_promocodes`. Ключи `users_promocodes` такие: `user_id` (`users.id`) `promocode_id` (`promocodes.id`)
Хочу сменить поле `users.bonus` у всех юзеров, у которых, promocode_id = 10
я догадался

Google

Adel
23.02.2018
14:45:15
а что если у какого-то юзера бонус равен.. 3?
Ну, там уже немного по-другому отнимается, с этим разберусь :)
Не могу понять, как это всё в Laravel сделать через Eloquent
просто это важный вопрос
ты пытаешься бизнес-операцию сделать через массовый update
у каждого юзера своя история. у него может не быть столько бонусов. или он может иметь статус Неприкасаемый и бонусов у него отнимать нельзя
а еще есть кеши на сайте. которые тоже должны сброситься у каждого юзера. кеши с количеством бонусов
это я конечно фантазирую. но на вполне реальные темы.
Всё гораздо проще. Промокод увеличивает суточный лимит на получение ежедневного бонуса (у каждого он один по умолчанию, промокод прибавляет к этому числу ещё), нужно сделать так, чтобы после удаления промокода лимит отнимался
т.е. когда не у конкретного юзера промокод удаляют а когда деактивируют сам промокод?
Да
т.е. юзеров так много, что не хочется перебирать всех? :)
Да
мм.. чот не дает.

Google

Adel
23.02.2018
14:45:51
а вот. Мое мнение что все равно надо у каждого отдельно этот промокод убирать. А вы как думаете?

Dmitry
23.02.2018
15:25:38


Sergey
23.02.2018
15:26:01
именно по этому я и хотел узнать ваше мнение относительно того, на основании чего вы дробите на контексты
и насколько эти контексты выходят "большими"
ну или лучше сказать насколько маленькие роли среди стэкхолдеров вы выбираете)
ведь если со стороны бизнеса только один человек это еще не означает что роль одна


Dmitry
23.02.2018
15:37:59
Все паттерны - это просто примеры того, как разные задачи решают другие люди. Если что-то выглядит подходящим и даёт профит, то внедряю.
Если кажется, что нужно разделение и что оно упростит код - делю. Если не кажется и всё удобно и так - не делю. Каждый решает сам как ему будет удобнее.
Как всегда говорю, архитектуру придумали для упрощения сложного кода, а не для усложнения лёгкого.

Anton
23.02.2018
15:39:35


Maksim
23.02.2018
15:51:42
код в принципе такой себе... но это больше отсылка к говнищу под названием юи2. Портит картину напалмом просто

Dmitry
23.02.2018
15:51:57
1. Хотите читайте, хотите - нет. Доменный код здесь всё равно игнорирует хранилище.
2. См. пункт 1.
3. Фото получилось вложенной сущностью. Так тоже можно, если Вы не в курсе.
4. С Yii 2.0.13 после моего Pull Request это можно переписать на конструкторы.

Anton
23.02.2018
15:56:43

Aleh
23.02.2018
15:58:16
передать любые данные ок, сущность должна их проверить)
конечно приятнее туда передавать VO

Anton
23.02.2018
15:58:52
Так в том то и дело что оно ничего не валидирует

Aleh
23.02.2018
15:58:56
а не файловый дескриптор на память, лол)

Anton
23.02.2018
15:59:16
Пример специально для абсурдности привел
Вообще, если вдуматься то Framework Agnostic автор шикарно показал в четвертом пункте :)
Даешь PR в Framework чтобы что-то переписать в домене. Хотя я так и не понял что...

Google

Sergey
23.02.2018
16:35:34
как узнать?
если не попробовать?)
ведь далеко не все в этом мире так просто

Dmitry
23.02.2018
17:09:31

Maksim
23.02.2018
17:14:26
чёт в примере репозиторий дохрена умеет)
явно больше, чем ему положено :)

Dmitry
23.02.2018
17:15:36

Maksim
23.02.2018
17:15:55
trait ActiveQueryTrait
я бы за такое убивал. медлеенно, наслаждаясь процессом
по диагонали почитал... ну говно же. Зачем людям это показывать? что бы было больше жертв с юи головного мозга?

Dmitry
23.02.2018
17:18:23

Maksim
23.02.2018
17:18:47
public function addPhoto(Photo $photo): void
{
$photos = $this->photos;
$photos[] = $photo;
$this->photos = $photos;
}
серьёзно?)

Sergey
23.02.2018
17:21:10
в контексте php

mrG1K
23.02.2018
17:22:44
Прям жесткий холивар у вас пошел и разбор проекта который делался в рамках мастеркласса по юи на десяток уроков.
Вопрос к хейтерам, что вы можете предложить больше и лучше?

f4rt~
23.02.2018
17:22:59
приятно наблюдать даже

Maksim
23.02.2018
17:25:13

f4rt~
23.02.2018
17:25:22
можно я на 30 секунд вклинюсь с тупым вопросом, но меня переклинило и я жестко туплю, в контексте стратегии и пеймент-процессинга, кто должен быть в курсе "товаров" исходя из закона Деметры, Creator'a, инкапсуляции ?
мерчант или стратегия ?

Google

Maksim
23.02.2018
17:26:24

f4rt~
23.02.2018
17:26:44
ну в контексте мы платим за что-то

Maksim
23.02.2018
17:27:19
ну задача процессинга - взять деньнги и перевести их из точки "а" в точку "б". Почему он сие делает - его не волнует

mrG1K
23.02.2018
17:27:24

Maksim
23.02.2018
17:27:52

Dmitry
23.02.2018
17:28:25
серьёзно?)
Так работает SaveRelationBehavior для Yii через __set. Можно инкапсулировать в коллекцию, если не нравится. Если хотите обсудить полноценные сущности, то это в цикле статей про Доменные Сущности.

Sergey
23.02.2018
17:28:46

Maksim
23.02.2018
17:28:59
да статья говно же. зачем меня к другой-то отсылать?

Admin
ERROR: S client not available

Maksim
23.02.2018
17:29:14
что бы я там тоже вляпался?

Sergey
23.02.2018
17:31:49

f4rt~
23.02.2018
17:31:55
хех

Sergey
23.02.2018
17:34:15
ну просто нет что бы провести не масстер класс а курсы реабилитации
или сделать PR который позволяет не через __set а через прокси такое проворачивать
или портировать gii на ларавель с вуем
столько разные есть вариантов похоронить "это" и забыть как страшный сон
просто я вот не знаю от чего больше вреда
от yii или от подобных трюков которые обывателю не интуитивны
придет какойнибудь джун на суппорт таакого проекта и будет все время удивляться

Dmitry
23.02.2018
17:39:19

Google

Maksim
23.02.2018
17:40:31

Sergey
23.02.2018
17:44:41
в видосе про ооп
я скорее всего вырвал из контекста - просто позабавило
> Doctrine ORM – это Collection-like система, эмулирующая коллекции при работе с сущностями. Рассмотрим, за счёт чего она это делает.

Dmitry
23.02.2018
17:47:08
или портировать gii на ларавель с вуем
Ларавел с Eloquent со своими связями в плане агрегации ещё бесполезнее, так как просто присвоить связи и сохранить агрегат не умеет. И VO всё равно нужно также мапить вручную, как в AR.

Evgenii
23.02.2018
17:47:25
Ох и срач

Sergey
23.02.2018
17:47:36
В твоей статье о том как доктрину юзать нашел следующее
public function save(Employee $employee): void
{
$this->em->flush($employee);
}
что невилирует какой либо профит от unit of work
как на счет запилить сервис рецензируемых обучающих статей?)

Dmitry
23.02.2018
17:50:42

Dmitriy
23.02.2018
17:54:54
критиканы

Sergey
23.02.2018
18:00:40
и что в этом случае будет сохранен только корень агрегата а не стэйт всего агрегата
ну и еще что это deprecated фича которую выпилили для 3.0 (которая хорошо если через год зарелизиться потому все ок))
критиканы
и то правда... пойду своих статей попишу
и не буду их паблишить)

f4rt~
23.02.2018
18:04:01
((
обнови домен с бложиком, нуу