我正在將一個大項目Yii1升級到Yii2。我對ORM有一些問題。升級到Yii2,ORM不起作用
用以下方式(基本上是從guidebook複製粘貼),我有幾個關係宣稱:
class Order extends \yii\db\ActiveRecord {
/* other code */
public function getAffiliate()
{
return $this->hasOne(Affiliate::className(), ['id_affiliate' => 'affiliate_id']);
}
每當我試着回聲或W/E $order->affiliate->name
;我得到以下錯誤:
yii\base\ErrorException: Trying to get property of non-object
我沒有Yii1的經驗,所以曾經。這個項目很奇怪的是數據庫。所有表格以yii_tablename
開頭,編號爲:id_tablename
。對Yii1來說這是否正常,這可能導致上述問題?
編輯:當我執行如下功能:$order->getAffilate()
它返回一個ActiveQuery,而不是來自會員的數據。
當我執行以下命令:
$order->getBillingAddress()->one();
我得到一個奇怪的錯誤:
Getting unknown property: app\models\Order::billing
剛剛添加的信息,返回activeQuery顯示正確的數據,謝謝 – Wijnand
對不起,我再看看活躍查詢的數據,它返回的數據,但沒有從會員。這對我來說太蠢了。 – Wijnand
檢查'Affiliate'表中是否存在'id_affiliate'。和'Order'中的'affiliate_id'。接下來檢查ID是否正確。 API你的代碼是正確的。 –