3 回答
TA贡献1831条经验 获得超10个赞
您已经有一个名为 的字段
contact_number
,但是您想定义一个属性 contract_number,这是错误的,请尝试使用其他名称。你
contract_number
的是 json 格式。从数据库中取出后,需要解码,否则为字符串,不能使用$contact_number['number']
。
public function getProfileContractCodeAttribute()
{
$contact_number = json_decode($this->contact_number, true);
return $contact_number['code'];
}
public function getProfileContractNumberAttribute()
{
$contact_number = json_decode($this->contact_number, true);
return $contact_number['number'];
}
所以你可以得到这样的属性:
Profile::find(1)->profile_contract_number;
TA贡献1796条经验 获得超7个赞
在accessor您无法访问该属性的范围内。所以是Undefined
public function getContactNumberAttribute()
{
$contact_number = $this->contact_number;//$this->contact_number is not valid
return $contact_number['number'];
}
将ContactNumber部分更改为其他内容PhoneNumber
public function getCountryCodeAttribute()
{
$contact_number = $this->contact_number;
return $contact_number['code'];
}
public function getPhoneNumberAttribute()
{
$contact_number = $this->contact_number;
return $contact_number['number'];
}
然后像这样访问它。
dd(User::find(1)->phone_number);
dd(User::find(1)->country_code);
TA贡献1909条经验 获得超7个赞
试试看json_decode
public function getCountryCodeAttribute()
{
$contact_number = json_decode($this->contact_number);
return $contact_number['code'];
}
public function getContactNumberAttribute()
{
$contact_number = json_decode($this->contact_number);
return $contact_number['number'];
}
- 3 回答
- 0 关注
- 172 浏览
添加回答
举报