试图在实际Yii2中获得非对象的属性

时间:2017-08-30 15:54:45

标签: php yii2

为什么我的关系'试图获得非对象的属性' ???

我有模型目的地,并使用hasOne()来建模AddressDistrict

public function getDestinationAddressDistrict(){
return $this->hasOne(\common\models\AddressDistrict::className(), ['id' => 'DISTRICT']);
}

在模型 AdressDistrict 任何字段中:id,propinsi_id,nama

public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'propinsi_id' => 'Propinsi ID',
            'nama' => 'Nama',
        ];
    }

在controller(actionIndex)中,我得到模型Destination:

$modelDestination = new Destination;

然后我转到创建然后我转到 _form ..

_form 中,我写了$modelDestination->destinationAddressDistrict->id ..我有通知..有什么解决方案吗?

1 个答案:

答案 0 :(得分:1)

您的问题是您创建了Destination的新实例,因此所有字段都为空,因此无法根据DISTRICT的值获取有效关系,因为{ {1}}尚未设置。

您有两种选择。您可以测试是否存在有效关系;

DISTRICT

或者您可以指定默认值if ($modelDestination->destinationAddressDistrict){ //Do something with the `$modelDestination->destinationAddressDistrict->id` } ,以便生成有效关系。