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 replay march 18

The Replay (3/18/26): Hiring in the AI era, coding isn’t dead, and more

Discover what’s new in The Replay, LogRocket’s newsletter for dev and engineering leaders, in the March 18th issue.

Matt MacCormack
Mar 18, 2026 ⋅ 29 sec read
ken pickering ai hiring quote card

Thinking beats coding: How to hire the right engineers in the AI era

A CTO outlines his case for how leaders should prioritize complex thinking over framework knowledge when hiring engineers for the AI era.

Ken Pickering
Mar 18, 2026 ⋅ 4 min read

Exploring Vercel’s JSON Render: build dynamic UI from structured data

Build dynamic, AI-generated UI safely with Vercel’s JSON Render using structured JSON, validated components, and React.

Emmanuel John
Mar 17, 2026 ⋅ 11 min read

Stop wasting money on AI: 10 ways to cut token usage

Learn practical techniques to reduce token usage in LLM applications and build more cost-efficient, scalable AI systems.

Emmanuel John
Mar 16, 2026 ⋅ 8 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

Your email address will not be published. Required fields are marked *

Hey there, want to help make our blog better?

Join LogRocket’s Content Advisory Board. You’ll help inform the type of content we create and get access to exclusive meetups, social accreditation, and swag.

Sign up now