2021-09-18
1682
#laravel
Adewale Abati
3921
Sep 18, 2021 ⋅ 6 min read

Polymorphic relationships in Laravel and their use cases

Adewale Abati Web engineer, tech lifestyle YouTuber, public speaker. Building communities and open source for the Next Billion Users.

Recent posts:

The 10 Best React Native Component Libraries You Should Know

The 10 best React Native UI libraries of 2025

UI libraries like React Native Paper and React Native Elements offer pre-developed components that help us deliver our React Native projects faster.

Aman Mittal
Feb 21, 2025 ⋅ 7 min read
top ten docker alternatives worth considering

The 10 best Docker alternatives to consider

Although Docker remains the dominant platform for containerization and container management, it’s good to know about different tools that may work better for certain use cases.

Ayooluwa Isaiah
Feb 21, 2025 ⋅ 13 min read
how to use the ternary operator in javascript

How to use the ternary operator in JavaScript

Add to your JavaScript knowledge of shortcuts by mastering the ternary operator, so you can write cleaner code that your fellow developers will love.

Chizaram Ken
Feb 21, 2025 ⋅ 7 min read
Using tsup To Bundle Your TypeScript Package

Using tsup to bundle your TypeScript package

Learn how to efficiently bundle your TypeScript package with tsup. This guide covers setup, custom output extensions, and best practices for optimized, production-ready builds.

Muhammed Ali
Feb 20, 2025 ⋅ 7 min read
View all posts

22 Replies to "Polymorphic relationships in Laravel and their use cases"

  1. Thanks for the great explanation. It was very easy to learn this content here.

    I have 2 questions:

    1. Are you missing S on $page->comment(s)? And in other loops too?
    foreach($page->comment as $comment)
    {
    // working with comment here…
    }

    2. In which column the comments are stored in comments table? Because we have only: Id, commendable_id, commendable_type and date.

  2. 2. Its an error in this article – in comments migrations we saw $table->date(‘body’); .. then must by $table->string(‘body’); or $table->text(‘body’); – body column is for the coment content 🙂

  3. Great article. I have one question: how would you return the inverse? Eg all comments of class Page?

  4. This was exactly what I was looking for. All my scenarios were discussed here. This is fantastic. Thank you very much.

  5. Hi, greate article!!!
    Just one small mistake: it should be $table→morphs(‘commentable’) not $table→morphs(‘comment’) which would automatically create two columns using the text passed to (it won’t add able, atleast not in L8). So it will result in commentable_id and commentable_type.

  6. this is useless if you not going to teach actionable events like attaching comment to post or sync without detaching!! stop supporting half baked articles

  7. The way you’ve explained this complex concept is truly impressive. Laravel’s flexibility never ceases to amaze me, and this article really highlights the power of polymorphic relationships in making our code cleaner and more efficient.

Leave a Reply