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:

How to Use React Router v6 in React Apps

How to use React Router v7 in React apps

A practical guide to React Router v7 that walks through declarative routing, nested layouts, dynamic routes, navigation, and protecting routes in modern React applications.

Aman Mittal
Jan 16, 2026 ⋅ 15 min read

TanStack AI vs. Vercel AI SDK: Choosing the right AI library for React

TanStack AI vs. Vercel AI SDK for React: compare isomorphic tools, type safety, and portability to pick the right SDK for production.

Ikeh Akinyemi
Jan 16, 2026 ⋅ 8 min read
Authentication With React Router V6: A Complete Guide

Authentication with React Router v7: A complete guide

Handle user authentication with React Router v7, with a practical look at protected routes, two-factor authentication, and modern routing patterns.

Vijit Ail
Jan 15, 2026 ⋅ 15 min read

A developer’s guide to designing AI-ready frontend architecture

AI now writes frontend code too. This article shows how to design architecture that stays predictable, scalable, and safe as AI accelerates development.

Nelson Michael
Jan 15, 2026 ⋅ 9 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

Would you be interested in joining LogRocket's developer community?

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