当外键在表中有多列时,使用Eloquent从外键获取信息

时间:2015-09-30 21:54:09

标签: laravel-4 eloquent

我正在使用Laravel 4.2,并且有一个名为 users 的表,该表中的列标有 name 。我还有一个具有2列的事务表,这两列都是引用用户表的主键的外键。 事务中的一行标记为 given_to ,另一行标记为 received_from 如何使用Eloquent从事务表中访问与given_to用户ID关联的名称?我在视图中尝试了以下内容并收到尝试获取非对象错误的属性

@foreach($transactions as $transaction)
    {{ $transaction->given_to->name }}
@endforeach 

1 个答案:

答案 0 :(得分:1)

您应该显式映射对象之间的关系并为它们设置别名。 像

class Transactions extends Eloquent
{
  public function givenTo()
  {
    return $this->belongsTo('Users', 'given_to');
  }
  public function receivedFrom()
  {
    return $this->belongsTo('Users', 'received_from');
  }
}
class Users extends Eloquent
{
  public function outgoingTransactions()
  {
    return $this->hasMany('Transactions', 'given_to');
  }
  public function incomingTransactions()
  {
    return $this->hasMany('Transactions', 'received_from');
  }
}

然后在视图中使用别名函数。