我在Illuminate Database 4.2上有一个旧项目,现在我试图将其升级到6.0,但是我发现了一些奇怪的东西: 我有这样的关系:
public function addressTV()
{
return $this->hasMany('Billing\db\Models\AddrMapTv', 'StreetID');
}
在我使用4.2时
$list = \Billing\db\Models\Street::with(['addressTV'])->get()->toArray();
它转换为:
$list['address_tv']
没关系。
但是在具有相同代码的6.0中,我得到了:
$list['address_t_v'];
这给我带来了很多问题。有什么办法可以返回旧名称转换?
答案 0 :(得分:0)
如果您用这种方式定义了许多关系,可能会有点困难,但是,我在这里看到的最简单的方法是定义accessor
这里的问题是缺少address_tv
键,定义一个accessor
将添加该键。
因此,在您的Street
模型中:
/**
* Get the street's address_tv.
*
* @return object
*/
public function getAddressTvAttribute()
{
return $this->addressTV();
}
没有测试它,但是它应该在理论上起作用。