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