Полиморфные отношения (Polymorphic). Гайд по отношениям в Laravel

Поделиться
HTML-код
  • Опубликовано: 4 окт 2024

Комментарии • 35

  • @den-rad
    @den-rad Год назад +17

    Волнуюсь за отношения в Laravel больше, чем за свои.

    • @CutCodeRu
      @CutCodeRu  Год назад +1

      Добро пожаловать в клуб)

  • @АлександрКравчук-и3ш

    Как раз не знал как правильно сделать такую структуру!

  • @SanyaHP3
    @SanyaHP3 Год назад +1

    Когда-то изучал комментарии в вордпресе и не понимал, что за структура такая интересная) Спасибо, очень полезно!

  • @michelcecere5734
    @michelcecere5734 8 месяцев назад +1

    Спасибо вам от Белгии - все работает отлично в моем проекте

  • @zCubEz
    @zCubEz Год назад +1

    Круть!! Так держать! Очень клевые видосы, даже книжку прикупил поддержать ) за одно мб чего полезного и нового узнаю )

    • @CutCodeRu
      @CutCodeRu  Год назад +2

      Спасибо за поддержку!

  • @gamingplay5415
    @gamingplay5415 Год назад +2

    ждём ещё новых видео😊 как всегда намного интереснее смотреть ваши уроки чем у других

  • @ivanteplyakov3185
    @ivanteplyakov3185 7 месяцев назад +1

    Здравствуйте, хорошее видел) Но сколько материала посмотрел и почитал, ни кто не рассказывает как выводить одновременно через один контроллер все комментарии к моделям артиклей и блогов)

  • @Геннадий-с5э
    @Геннадий-с5э 7 месяцев назад

    Пипец ты шаришь конечно 10/10 просто

  • @vesh95
    @vesh95 Год назад

    Когда я впервые освоил полиморфные отношения, я добавил комментарии ко всему, чему можно, добавил комментарии к комментариям, к коментариям добавились лайки, лайки на комментарии, лайки на лайки, лайки на комментарии к лайкам😂

  • @vesh95
    @vesh95 Год назад

    Такой звук хороший. Я аж наушники снял, думал через колонку звук пошел

    • @CutCodeRu
      @CutCodeRu  Год назад

      Работаем и над качеством звука, спасибо

  • @4KoTRpa
    @4KoTRpa Год назад +1

    И ещё один момент, который стоило упомянуть - почему некоторые разработчики не жалуют morph связи.
    Чтобы сохранить гибкость и оставить за собой возможность переименовать связанную модель и не потерять эту самую связь: в поле *_type можно записывать не название класса модели, а свое значение, указанное 3 параметром в методах motphTo...

  • @snikitin32
    @snikitin32 4 месяца назад

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

  • @vesh95
    @vesh95 Год назад

    А на домашку задание: "Сделать миграцию для переноса данных из обычной таблицы comments в poly_comments. Миграция должна откатываться (частичная потеря данных допустима" 😂
    Вот теперь миграцию можно по праву считать миграцией)

  • @borisn879
    @borisn879 Год назад

    Благодарю за видео. Не понимаю смысл полиморфа, это же смешение разных контекстов (bounded contexts). "Комментарий к статье" и "комментарий к фото" могут иметь разный размер, разные ограничения и правила валидации, разный набор полей, участвуют в разных поведениях и событиях. Также будет сложно потом сделать модульную (компонентную) структуру.

    • @TsA1ex
      @TsA1ex Год назад +1

      Так если разные контексты, то и полиморфность не подходит.
      Полиморфность больше для случаев, типа "вот этот комментарий, что я сейчас пишу вам" ) Он может быть к видео, к посту, к другому комментарию, но имеет одинаковый размер, ограничения и вплидацию

  • @melonwark1
    @melonwark1 10 месяцев назад

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

  • @JaanPajusalu
    @JaanPajusalu 8 месяцев назад

    Можно ли по такому принципу делать многоязычную систему?

  • @ОлегВячеславович-т1о
    @ОлегВячеславович-т1о 2 месяца назад

    Дали проект, где все на этих полиморфных отношениях. Это просто жесть, все тормозит, индексов нет, целостность базы нарушить очень легко,так как нет внешних ключей, из-за этого везде софтделиты, из-за которых база будет надуваться со временем. Это если какую-то мелкую вещь делать сойдет, но не все на полиморфных отношениях

  • @TsA1ex
    @TsA1ex Год назад

    Упустили Морфмапы и m2m для полиморфных. Или это в следующем видео?

    • @CutCodeRu
      @CutCodeRu  Год назад

      MorphToMany были а мапов не будет

    • @TsA1ex
      @TsA1ex Год назад

      @@CutCodeRu может не так написал. Не MorphToMany, а ManyToMany (Polymorphic), там где pivot таблица ещё

    • @CutCodeRu
      @CutCodeRu  Год назад

      @@TsA1ex morphtomany метод называется laravel.com/docs/10.x/eloquent-relationships#many-to-many-polymorphic-relations

  • @pep421
    @pep421 Год назад

    Это не будет работать на нескольких миллионов записей . На больших проектах лучше разделять.

    • @TsA1ex
      @TsA1ex Год назад

      Почему не будет? Это тот же самый запрос, только +1 where условие. И модель с таблицей будет по полю type определяться

    • @TsA1ex
      @TsA1ex Год назад

      Представьте, что вы модератор и модерируете комментарии в ВК, которые могут быть к посту, к фото, к видео и т.п. У вас в админке все комментарии отовсюду. Что проще сделать запрос комментов из одной таблицы или из разных таблиц (комменты к фото, комменты к видео и т.п)

    • @ОлегВячеславович-т1о
      @ОлегВячеславович-т1о 2 месяца назад

      @@TsA1ex Будет очень тормозить, у меня проект написан прошлым любителем полиморфных отношений, тормоза просто ужасны.

    • @TsA1ex
      @TsA1ex 2 месяца назад +1

      @@ОлегВячеславович-т1о наверное точно любителем. Не понятно как может добавление одного where (по фиксированному набору типов) в запросы может существенно повлиять на скорость

  • @4KoTRpa
    @4KoTRpa Год назад

    Ценю Ваши видео и труд, но хватит учить людей пихать id-шники отношений в fillable и напрямую писать туда. Для этого есть замечательные методы associate, sync и т.д.