1
我有三個表格:users, emails,attachments
。用戶表通過user_id與電子郵件連接。電子郵件表通過email_id與附件連接。Laravel從3個表中獲取相關數據
我的問題是:我應該如何讓它看起來雄辯laravel讓所有用戶的電子郵件和他們的附件? (我知道如何讓所有的用戶和他們的電子郵件,但我不知道如何添加附件)
我有三個表格:users, emails,attachments
。用戶表通過user_id與電子郵件連接。電子郵件表通過email_id與附件連接。Laravel從3個表中獲取相關數據
我的問題是:我應該如何讓它看起來雄辯laravel讓所有用戶的電子郵件和他們的附件? (我知道如何讓所有的用戶和他們的電子郵件,但我不知道如何添加附件)
根據你數據庫的關係,你可以在你的Email
模型聲明的關係的方法,例如:
// One to One (If Email has only one attachment)
public function attachment()
{
return $this->hasOne(Attachment::class);
}
否則:
// One to Many (If Email contains more than one attachment)
public function attachments()
{
return $this->hasMany(Attachment::class);
}
從Email
模型閱讀使用ID的用戶時檢索相關附件(S),您可以嘗試這樣的事:
$user = User::with('email.attachment')->find(1); // For One-to-One
$user = User::with('email.attachments')->find(1); // For One-to-Many
希望您已使用方法名稱email
在User
模型中爲Email
模型聲明瞭關係方法。
注意:確保您已經爲模型使用了正確的命名空間。如果你做得正確並且遵循了Laravel
慣例,那麼它可能會起作用,否則做一些研究。也check the documentation。
非常感謝!一切正常。 –
你好,我還有一個問題。如果我想獲取用戶及其附件(沒有電子郵件)(用戶連接到電子郵件和電子郵件連接到附件),應該如何查看查詢?現在我只是添加了另一個表附件(user_id)的密鑰,但我認爲沒有這個附加密鑰就可以獲得數據。 –
在這種情況下,您可以在'Model'中創建'atachments'關係方法,就像您在'Email'模型中創建的一樣。 –