我試圖在擴展db\activerecord
的模型類中使用自定義屬性。Yii2 activerecord自定義屬性
我試過聲明public $categories = []
,然後要麼直接通過$model->categories = [1,2,3]
分配值,或在我的模型類public function setCategories($ids) {...
使用setter方法,然後再通過$model->categories = [1,2,3]
分配。
我也試過用$model->setAttribute('categories', [1,2,3])
更新屬性。
在所有情況下$model->categories
未填充。
我的最終目標是將類別分配到一個模型,然後使用afterSave()
和beforeSave()
可以這樣做更新數據庫關係/表或我應該db\model
延長我的模型類?如果我這樣做,我會失去哪些功能?
編輯 我可能錯誤地報告了我的問題。
我有一個表單,用戶可以選擇特定模型的類別(即「產品」)。所有類別都是預先存在的,並且通過具有一對多關係(一個產品具有多個類別)的聯結表product_category('product_id','category_id')將產品分配給類別。
現在,在處理視圖的控制器中,我收到了一個類別標識列表,我想將它們分配給一個屬性,以便我可以處理它們,即刪除或添加(通過link()
)product_category表中的條目爲特定產品。
我已經正確地建立了關係,就像您提到的那樣,我可以正確地獲取模型的類別。我現在想要做的是在我的控制器中設置/保存模型的類別。 從我在這裏看到的https://github.com/yiisoft/yii2/issues/2397,我試圖做的應該工作。 – jimmy