MAGI
спасибо за логику, но это было требование продактов
ну оно несет в себе кучу проблем в обозримом будущем. Историю можно реализовать проще)
Anton
Ну то есть совсеты не технические, а так делать не надо
Anton
окей
Anton
это мы прошли
Anton
уже сделано и нельзя по другому 🙂
Anton
Просто днем про null говорили и я хотел показать как null в ключах в mysql работает
Олексій
Я знаю что они делают
Anton
ну и с email решили как Макс сказал 🙂
Олексій
Gdpr
Олексій
100%
Anton
Ну только мы это 2 года назад начали делать 🙂
Anton
Тогда еще мало об этом говорили 🙂
Олексій
Но зачесались вот недавно
Anton
А так да 🙂
Anton
И это в том числе
Олексій
Ну я бы конечно нулил email
Олексій
Либо
Олексій
Реплейсил его на что то типа some****user@*ail.com
Олексій
Типа анонимизировал
Олексій
Это скорее вопрос не технический
MAGI
а разве по gdpr не нужно насовсем удалять данные о пользаке?))
Олексій
А именно по бизнесу
Олексій
Подойдёт анонимизация данных
MAGI
ну deleted_at точно не анонимизация :D
Олексій
Тобишь удалить имя, телефон и email - достаточно
MAGI
Тобишь удалить имя, телефон и email - достаточно
ну если нет еще каких-то данных по которым можно в итоге идентифицировать (всякие номера соц страх, карт и т.д и т.п))
Олексій
Я не стал писать все:) это очевидно просто
Олексій
Короче. Заменить все звёздами.
Олексій
На 70%
Олексій
И норм
Олексій
Имхо
Олексій
Но нужно у юристов узнавать
Pavel
Всем привет! Искал способ отсортировать выборку по связанной таблице, нагугл вот такую штуку: https://stackoverflow.com/questions/25700529/laravel-eloquent-how-to-order-results-of-related-models там советуют поступать вот так: $school = School::with(['students' => function ($q) { $q->orderBy('whateverField', 'asc/desc'); }])->find($schoolId); Но у меня этот способ не работает. Таким макаром действительно можно сортировать выборку? Или отвечающий ошибся?
Олексій
Ошибка?
Олексій
Какая?
Pavel
Какая?
Ошибки нет, просто поиск происходит не верный (либо я чего-то не понимаю)
Pavel
Ну а что там за sql на выходе?
sql на выходе такой, как-будто бы сортировка и не применялась
Pavel
$query->with(['author' => function($author) { $author->orderBy('id', 'asc'); }]); dd($query->toSql()); В sql коде сортировки нет
Pavel
Как вообще работают подобные штуки? В какой момент применятся вещи указанные в callback? (Эх, с джойнами всё гораздо проще)
Maksim (Ellrion)
$query->with(['author' => function($author) { $author->orderBy('id', 'asc'); }]); dd($query->toSql()); В sql коде сортировки нет
Потому что ты сделал toSql для основного запроса. А тот что в with он порождает отдельный
Maksim (Ellrion)
Как вообще работают подобные штуки? В какой момент применятся вещи указанные в callback? (Эх, с джойнами всё гораздо проще)
Сначало выбираются данные для основной модели а потом грузятся указанные релейшены со своими доп ограничениями из замыкания
Maksim (Ellrion)
Спасибо! То есть, отсортировать выборку таким образом не выйдет?
Так сортируется именно связанные (тоесть сами авторы в вашем случае если бы их было много)
Maksim (Ellrion)
Ты хотел основную модель по связи сортирнуть?
Pavel
Ты хотел основную модель по связи сортирнуть?
Так точно. В итоге сделал через join, но он ведь не учивает scopes
Maksim (Ellrion)
Так точно. В итоге сделал через join, но он ведь не учивает scopes
Ну у тебя сортировка же по id автора в примере (или в реале не так просто?) Просто это же поле есть у тебя в виде типо author_id Почему не по нему сортирнуть?
Maksim (Ellrion)
Так точно. В итоге сделал через join, но он ведь не учивает scopes
Посмотри вот гист. Мб поможет сделать то что хочешь https://gist.github.com/Ellrion/5d873fc8acf4d18464e65595c84bc374
Pavel
Ну, по имени, если точнее
Maksim (Ellrion)
Какраз  ->orderByRelation('author', 'name') в заголовке)
Pavel
Ага, увидел )
Pavel
Вот только понять не могу, за счёт чего у тебя учитываются scopes связи? (Например, связанная сущность не активна и соотвественно в сортировке участвовать не должна) public function scopeOrderByRelation($query, $relation, $column, $direction = 'asc') { if (null === $query->getQuery()->columns) { $query->select([$this->getTable() . '.*']); } $relation = $query->getRelation($relation); $related_table = $relation->getRelated()->getTable(); //for laravel "< 5.4" //$query->leftJoin($related_table, $relation->getForeignKey(), '=', $relation->getQualifiedParentKeyName()); $query->leftJoin($related_table, $relation->getQualifiedForeignKeyName(), '=', $relation->getQualifiedParentKeyName()); foreach ((array) $column as $order) { $query->orderBy($related_table . '.' . $order, $direction); } return $query; }
Maksim (Ellrion)
Они не учитываются. А как скоуп связи влеяет на сортировку основной модели по этой связи?
Pavel
Они не учитываются. А как скоуп связи влеяет на сортировку основной модели по этой связи?
Не учитывать soft_deleted сущности например, или скажем, какой-то собственный scope с критерием неактивности Получается, что если у основной модели нет связанной сущности, то и в сортировке она окажется в самом низу
Pavel
Или, не знаю ) Почему-то заморочился по этой теме
Maksim (Ellrion)
Ну для простой сортировки имхо норм метод
Pavel
Anonymous
Хай всем
Anonymous
Anonymous
Как в ларке сделать нормальныно уникальное мало, если пользователи могут удаляться?
если вопрос еще актуален то лучше сделать свой rule или validator
Anonymous
даже не «лучше», а это единственный вариант
Segmentation
Коллеги
Segmentation
Кто-нибудь имел дело с Django?
Anonymous
Romuald
Кто-нибудь имел дело с Django?
спрашивай в личку, если тут нищя
\/
это только выборка или вставка тоже?
\/
а в тайминге девтулза - на что 18 секунд ушло пишет?
\/
не - я про консоль в браузере. какое действие так долго
\/
и посмотри через https://github.com/itsgoingd/clockwork