【问题标题】:Laravel Eloquent - how to relate table to another by two fieldsLaravel Eloquent - 如何通过两个字段将表与另一个相关联
【发布时间】:2016-07-28 08:46:34
【问题描述】:

有两个表UserMail

MailTable:

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

UserTable:

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

Mail表与用户有两个字段=>user_idfrom_user_id,如何使用eloquent获取用户相关数据得到inboxoutbox (已发送) 为一位用户?

【问题讨论】:

标签: php database laravel laravel-5 eloquent


【解决方案1】:

不确定你的模型是如何定义的,但是这样的东西应该可以工作。

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

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

【讨论】:

  • 我也在考虑同样的解决方案,至少你让我确定了。 +1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-24
  • 2010-12-01
  • 1970-01-01
  • 2012-05-02
  • 2019-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多