我正在使用Laravel 4.2,并且有一个名为 users 的表,该表中的列标有 name 。我还有一个具有2列的事务表,这两列都是引用用户表的主键的外键。 事务中的一行标记为 given_to ,另一行标记为 received_from 。 如何使用Eloquent从事务表中访问与given_to用户ID关联的名称?我在视图中尝试了以下内容并收到尝试获取非对象错误的属性:
@foreach($transactions as $transaction)
{{ $transaction->given_to->name }}
@endforeach
答案 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');
}
}
然后在视图中使用别名函数。