Laravel Eloquent - 如何通过两个字段将表与另一个表相关联

时间:2016-07-28 08:46:34

标签: php database laravel laravel-5 eloquent

有两个表UserMail

MailTable

\mail
\--|id
\--|user_id
\--|from_user_id
\--|other_fields

UserTable

\user
\--|id
\--|name
\--|other_fields

Mail表与用户相关的两个字段=> user_idfrom_user_id,如何使用eloquent获取与用户相关的数据,以便为一个用户获取收件箱发件箱(已发送)

1 个答案:

答案 0 :(得分:2)

不确定您的模型是如何定义的,但这样的事情应该有效。

namespace App;

use Illuminate\Database\Eloquent\Model;

class Mail extends Model
{
    public function user()
    {
        return $this->hasOne('App\User');
    }

    public function from_user()
    {
        return $this->hasOne('App\User', 'id', 'from_user_id');
    }
}

然后要抓取,请使用:$from_user = $mail->from_user

根据应用程序中的定义方式调整命名空间。