Laravel 4 对能言善辩的拉拉维尔4有着广泛的关系

Laravel 4 对能言善辩的拉拉维尔4有着广泛的关系,laravel-4,eloquent,Laravel 4,Eloquent,经过大量的搜索,我找不到真正解决问题的方法,所以如果有人能帮我,我都在听 我有树模型,帖子,用户和个人资料 Post belongsTo user – user hasMany posts == One –to-Many relation Profile belongsTo user – user hasOne profile == One-to-One relation 数据库结构 User ---- id : primary key ---- email : string ---- n

经过大量的搜索,我找不到真正解决问题的方法,所以如果有人能帮我,我都在听

我有树模型,帖子,用户和个人资料

Post belongsTo user – user hasMany posts == One –to-Many relation
Profile belongsTo user – user hasOne profile == One-to-One relation
数据库结构

User

---- id : primary key
---- email : string
---- name : string

用户模型

class User extends Eloquent  {
    public function posts(){
        return $this->hasMany('Post');
    }
    public function profile(){
        return $this->hasOne('Profile');
    }
}
剖面模型

class Profile extends \Eloquent {
    public function user(){
        return $this->hasOne('User');
    }
}
后模型

class Post extends \Eloquent {  
    public function user(){
        return $this->belongsTo('User');
    }
}
如何通过帖子获取用户传记或profiles表上的任何其他属性

我希望我已经足够清楚了

您的设置中没有草率的操作

首先修复此关系:

//Profile    
public function user(){
    return $this->belongsTo('User');
}
然后简单地说:

$post->user->profile->biography;

$user->profile->biography;
由于post和profile都属于用户,因此post中没有配置文件数据

还有另一种链接帖子和配置文件表的方法:

然后:

通过这种方式,您可以通过不获取用户模型来保存一个查询

//Profile    
public function user(){
    return $this->belongsTo('User');
}
$post->user->profile->biography;

$user->profile->biography;
// Post model
public function profile()
{
  return $this->hasOne('Profile', 'user_id', 'user_id');
}

// Profile model
public function posts()
{
  return $this->hasMany('Post', 'user_id', 'user_id');
}
$post->profile->biography;

$profile->posts; // collection of Post models