Laravel 5.0 ORM Relations

Wednesday, November 4, 2015

I'm trying to select a 'Site' from a Users 'Organisation'.
I can successfuly retrieve a User's Organisation (as an Organisation object) by using



$user->organisation


but when I try to retrieve the sites belonging to the organisation using:



$user->organisation->sites


I get every site in my DB returned (as a collection).



My User Model's organisation relationship:



public function organisation()
{
return $this->belongsTo('App\Models\Organisation', 'organisation_id');
}


My Organisation Model's User and Site relationships:



public function users()
{
return $this->hasMany('App\Models\User');
}

public function sites()
{
return $this->hasMany('App\Models\Site');
}


My Site Model's Organisation relationship:



public function organisation()
{
return $this->belongsTo('App\Models\Organisation');
}


User Table




  • id

  • organisation_id

  • name

  • email

  • password

  • last_login

  • persist_code

  • reset_password_code

  • remember_token

  • created_at

  • updated_at

  • deleted_at

  • responsible_to



Organisations




  • id

  • name

  • created_at

  • updated_at

  • deleted_at



Sites




  • id

  • organisation_id

  • name

  • address

  • account_code

  • created_at

  • updated_at

  • deleted_at



I've included everything I think will be useful here but I've missed anything I will add it as requested.



Thanks

0 comments:

Post a Comment