Citti
Citti

Reputation: 463

laravel model relationship seems backwards compared to docs

So I am setting up a one to one relationship between MyModel and the users table.

MyModel obviously has a user_id column to tie back to the users.

However - when i go to setup the relationship in MyModel I have to set it up in a way which seems backward!

This is in MyModel:

    public function user()
    {
        return $this->hasOne('App\User', 'id', 'user_id');
    } 

Why Am i having to set the opposite foreign and local keys... ? Am i missing something?

Upvotes: 0

Views: 27

Answers (1)

Jesus Erwin Suarez
Jesus Erwin Suarez

Reputation: 1585

Do it like this

class MyModel  { 
    public function user()
    {
        return $this->belongsTo('App\User');
    } 
}


class User { 
    public function myModel()
    {
        return $this->hasOne('App\MyModel');
    } 
}

And that should work as intended (one to one) relationship

Upvotes: 2

Related Questions