我是新來laravel的關係,所以很多道歉,如果它只是愚蠢的問題。我在項目中使用名爲users_email的數據透視表來獲取用戶的電子郵件。數據透視表包含外鍵Uid和Email_id。 Uid引用用戶表 的主鍵和Email_id相同。我可以在使用QueryBuilder加入時得到結果。雄辯如何與關係合作?
$recent_inbox_email=DB::table('users_email')->
join('email','users_email.email_id','=','email.Id')->
join('users','users_email.Uid','=','users.Id')->
where('users_email.Uid','=',$Uid)->
where('email.draft','<>','true')->
where('email.trash','<>','true')->
where('email.status','=','unread')->count();
這裏是我如何定義
public function getUid()//User Model
{
return $this->hasMany("User_Email",'Uid');
}
public function getEmId()//Email Model
{
return $this->hasMany("User_Email",'email_id');
}
//User_Email Model
public function email()
{
return $this->belongsTo('Email','Id','email_id');
}
public function user()
{
return $this->belongsTo('User','Id','Uid');
}
現在我想查詢像這樣用雄辯
$query= select * from users_email inner join
email on users_email.email_id=email.Id
inner join users on users_email.Uid=users.Id
where users.Id=users_email.Uid limit 0,10
foreach($query as $emails)
{
echo $emails->f_name;
echo $emails->Message
}
DB設計產品圖 Link to image
感謝在我的模型的關係
由於我與主鍵掙扎這麼感謝的捆綁。 – asim 2015-02-12 08:13:02