【发布时间】:2018-06-02 22:13:23
【问题描述】:
我有三张桌子,即:
网站:
id|name|slug|location|description
帐号:
id|accountname|slug
交易:
id|name|slug|site_id|accounthead_id|...
我的站点模型如下所示:
class Site extends Model
{
protected $fillable = [
'name',
'slug',
'location',
'description'
];
public function transactions()
{
return $this->hasMany('App\Transaction', 'site_id');
}
}
我的 AccountHead 模型如下所示:
class AccountHead extends Model
{
protected $fillable = [
'slug',
'accountname'
];
public function transactions()
{
return $this->hasMany('App\Transaction','accounthead_id');
}
}
我的交易模型看起来像:
class Transaction extends Model
{
public function site()
{
return $this->belongsTo('App\Site','id');
}
public function accounthead()
{
return $this->belongsTo('App\AccountHead','id');
}
}
在我的一个刀片中,我想显示所有交易和相关字段:
我的刀片文件
@forelse($transactions as $key => $transaction)
<tr>
<td>{{++$key}}</td>
<td>{{$transaction->updated_at->format('M d Y')}}</td>
<td>{{str_limit($transaction->name, 47) }}</td>
<td>{{str_limit($transaction->accounthead->accountname,47)}}</td>
<td>{{str_limit($transaction->site->Name,47)}}</td>
<td>{{str_limit($transaction->amount,47)}}</td>
</tr>
@empty
<tr>
<td colspan="4" class="text-center">No Transactions available.</td>
</tr>
@endforelse
它工作正常,除非一个网站/AccountHead 用于多个交易。一旦一个网站/账户头被用于不止一个交易它的抛出:
(2/2) ErrorException
Trying to get property of non-object
我在这里错过了什么非常愚蠢的东西吗?
【问题讨论】:
标签: php database laravel eloquent relationship