2017-08-30 11 views
0

なぜ私のリレーショナル「非オブジェクトのプロパティを取得しようとしていますか?非オブジェクトのプロパティをrealtionalで取得しようとしています。

IモデルAdressDistrict任意のフィールドでAddressDistrict

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

をモデル化するhasOneの持つモデル()を有する:ID、propinsi_id、NAMAコントローラにおいて

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

を( actionIndex)モデルを取得します。目的地:

$modelDestination = new Destination; 

と私はに渡すを作成し、私は私が$modelDestination->destinationAddressDistrict->idを書く..and私は..すべてのソリューションを通知することを持っている_form_form ...

に渡しますか?

+0

あなたが作成した関係では、有効な値ではありません。 – scaisEdge

答えて

1

あなたの問題は、あなたがDestinationの新しいインスタンスを作成しているということですので、すべてのフィールドが空になっているので、DISTRICTがまだ設定されていないようDISTRICTの値に基づいて有効な関係を取得する方法は、ありません。

2つのオプションがあります。このような有効な関係の存在をテストするか、

if ($modelDestination->destinationAddressDistrict){ 
    //Do something with the `$modelDestination->destinationAddressDistrict->id` 
} 

または有効な関係が発生することができるように、DISTRICTのデフォルト値を割り当てることができます。

関連する問題