Understanding Eloquent Relationships
Eloquent provides a beautiful, simple ActiveRecord implementation for working with your database. Each database table has a corresponding "Model" which is used to interact with that table. Models allow you to query for data in your tables, as well as insert new records into the table.
One-to-One Relationships
A one-to-one relationship is a very basic relation. For example, a User model might be associated with one Phone. To define this relationship, we place a phone method on the User model.
class User extends Model
{
public function phone()
{
return $this->hasOne(Phone::class);
}
}Polymorphic Relationships
A polymorphic relationship allows a model to belong to more than one other model on a single association. For example, imagine you have a photos table and you want to be able to associate photos with posts and users.
Defining Polymorphic Relationships
- Use morphTo() method on the owning model
- Use morphMany() or morphOne() on the associated model
- Requires type and id columns
const photo = {
id: 1,
path: 'path/to/photo.jpg',
imageable_type: 'App\Models\Post',
imageable_id: 1
};This flexibility allows for more dynamic and reusable code structures in your Laravel applications.