
Vitaliy
25.05.2018
06:24:34
Да
Если коротко, то
https://github.com/DarkaOnLine/L5-Swagger

Nik
25.05.2018
06:26:07
Да
используете аннотации, или ямл?

Google

Nik
25.05.2018
06:26:12
аннотации :)
код читаемый остается? меня дико харит отсутствие автокомплита в аннотациях и неработающий реформат

Vitaliy
25.05.2018
06:28:44
Терпимо

Ruslan
25.05.2018
06:28:55

Nik
25.05.2018
06:29:27

Ruslan
25.05.2018
06:30:32
у нас нет в анатациях автокомплита, все пишется как комментаций к методам в контроллере
описание моделей (definitions) идет в самих моделях

Nik
25.05.2018
06:35:58
спасибо за код
а в сторону ямла никто не смотрел?

Google

Kaido
25.05.2018
06:49:46

Nik
25.05.2018
06:52:02
onDelete ?

Pavel
25.05.2018
06:53:26
$table->integer('dialog_id')->unsigned()->nullable();
$table->foreign('dialog_id')->references('id')->on('dialogs')->onDelete('cascade');
вот так работает

Kaido
25.05.2018
06:57:41
ну суть в том, что я в модели ловлю ивент deleting
просто из таблицы идет удаление, без вызова ивентов

Pavel
25.05.2018
06:58:14
потому что связь
так и должно работать

Kaido
25.05.2018
06:59:12
ну это на самом деле совсем не очивидно, что из-за такого удаления связанных моделей, ивенты не вызываются)
я предполагал, что (в твоем например случае) при таком удалении для модели Dialog вызывается метод перед фактическим удалением)

Pavel
25.05.2018
07:00:01
слушай а какую ошибку тебе выдает когда ты вызываешь delete() на модели,

tochka
25.05.2018
07:01:32
Доброе утро, ребят подскажите какой пакет лучше (исходя из личного опыта) заюзать для многоуровневых категорий?

Pavel
25.05.2018
07:02:22

Kaido
25.05.2018
07:02:22
мне никакую ошибку не выдает, просто до ивента не доходит дело))
я хотел сделать удаление файлов поста
поэтому я при удалении постов (ловлю ивент deleting, вызываю
$post->files()->delete()
, а для модели File ивент deleting тупо не вызывается)

Pavel
25.05.2018
07:02:27
если я удаляю пользователя
то удалаятся диалоги и сообщения

Nik
25.05.2018
07:03:10

Maksim (Ellrion)
25.05.2018
07:03:26

Kaido
25.05.2018
07:03:41

Google

Kaido
25.05.2018
07:04:01

Maksim (Ellrion)
25.05.2018
07:04:17
Эвенты есть только у инстансов моделей

TSka
25.05.2018
07:04:36
Если будешь удалять через модель, то естественно заработает
А так у тебя удалением БД занимается

Kaido
25.05.2018
07:05:14
понял, пойду попробую, спасибо)

TSka
25.05.2018
07:09:08

tochka
25.05.2018
07:11:41

Nik
25.05.2018
07:12:45
забудь про рекурсию

TSka
25.05.2018
07:12:54
Примитивная таблица id, parent_id уже позволяет сделать бесконечную вложенность. А дальше уже от конкретных задач зависит

Nik
25.05.2018
07:13:22
nested sets или closure table. мне вторая более импонирует, гибче

tochka
25.05.2018
07:14:38

Евгений
25.05.2018
07:15:09
В чем проблема?

Nik
25.05.2018
07:15:12

TSka
25.05.2018
07:16:00
nested sets и closure table - это модели хранения иерархии. По ним есть уже готовые пакеты для всего на свете, и laravel в том числе

Евгений
25.05.2018
07:16:04
Я nested sets подход бдал, и пакет для лары есть нормальный

tochka
25.05.2018
07:16:24
я о подходах
уже думал реализовать что-то типа нестед сет самостоятельно, но уж очень сильно не хочется изобретать велосипед, если есть уже готовые решения

TSka
25.05.2018
07:18:10
Не понятно, в чем проблема.
id 1, parent_id 0, name root
id 2, parent_id 1, name child1
id 3 , parent_id 2, name child2
Вот и три уровня

tochka
25.05.2018
07:18:10
В чем проблема?
никак не могу получить вложенность глубже второго уровня стандартными связями в ларавеле

TSka
25.05.2018
07:19:54

Google

tochka
25.05.2018
07:20:13
Не понятно, в чем проблема.
id 1, parent_id 0, name root
id 2, parent_id 1, name child1
id 3 , parent_id 2, name child2
Вот и три уровня
да, по структуре как это должно быть это работает, а вот когда получаю коллекцию категорий то получается категория -> дочерняя категория, а вот если у дочерней категории есть своя категория, то я ее уже не получаю

TSka
25.05.2018
07:22:32
А, ну понятно, нужно указывать в ленивой загрузке глубину вложенности, а заранее ее ты не можешь знать. Ищи готовый пакет с nested sets, он точно умеет то, что тебе надо с одним лишь минусом - очень долго перестраивает деревья при изменении категорий

Nik
25.05.2018
07:23:26
долго это понятие относительное :) формально там просто идет сдвиг на +2 части дерева

tochka
25.05.2018
07:24:24

TSka
25.05.2018
07:26:18
ну, если тебе нужно получить все дерево категорий, то ты запрашиваешь как Categories::with('children', 'children.children', 'children.children.children'...). Или в модели указываешь protected $with = ['children'];, но тогда любая категория будет доставаться с полным древом дочерних, что тоже не всегда удобно

Admin
ERROR: S client not available

TSka
25.05.2018
07:27:26

tochka
25.05.2018
07:28:07

TSka
25.05.2018
07:28:57
Если собираешься постоянно дергать большими ветвями, то бери nested sets, он позволяет сильно сэкономить на запросах к БД.

tochka
25.05.2018
07:30:32

TSka
25.05.2018
07:30:45
Ага, этот

tochka
25.05.2018
07:31:11

TSka
25.05.2018
07:31:23
Просто почитай про nested sets, что это такое, и как работает. Чтобы понимать, как лучше использовать

tochka
25.05.2018
07:33:06

TSka
25.05.2018
07:35:07

tochka
25.05.2018
07:36:03

Anton
25.05.2018
07:47:31
А ещё есть подход маьериализед паз
Но его очень давно не видел в применении
https://packagist.org/packages/langaner/materialized-path

Google

Anton
25.05.2018
07:49:08
Даже пакет какой-то для лары есть

Александр
25.05.2018
07:49:22
коллеги, подскажите такой вопрос. Есть поле в определенном формате, но мне в запросе его перед сравнением нужно преоразовать в другой формат. Понимаю, что без замыкания не обойтись, но внутри как?

Maksim (Ellrion)
25.05.2018
07:50:28

Александр
25.05.2018
07:51:31
неее. в базе хранится дата строкой вида 25 май, а мне нужно сравнить например с текущей датой, потому нужно 25 май сначала преобразовать в нормальный вид
хелпер самого преобразования уже есть

Maksim (Ellrion)
25.05.2018
07:52:59

Александр
25.05.2018
07:53:42
мутатор насколько я понимаю преобразует уже все на выходе, или я ошибаюсь?
да, вернее ассемор
но в любом случае мне нужно наложить фильтр на это поле в правильном вормате

TSka
25.05.2018
07:55:17
https://laravel.com/docs/5.6/eloquent#local-scopes ?
Я так понял, это для поиска используется?

Александр
25.05.2018
07:55:46
в скопах тоже нужно пиать условие отбоа:)

Maksim (Ellrion)
25.05.2018
07:55:52

Александр
25.05.2018
07:56:21
да вот тоже думаю, что так проще. Но хочется на всяк случай и такое уметь

Maksim (Ellrion)
25.05.2018
07:57:07

Александр
25.05.2018
07:57:33

TSka
25.05.2018
07:59:12
Тогда сильно проще сделать where('date', format_date(now())), чем преобразовывать дату в БД перед сравнением
Если сделать аксессор, скоуп и мутатор, можно вообще постоянно с карбоном работать и не думать, что там в БД хранится