【发布时间】:2015-07-24 10:01:58
【问题描述】:
我正在尝试在扩展 db\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') 分配给类别。
现在在处理视图的控制器中,我收到一个类别 ID 列表,我想将它们分配给一个属性,以便我可以处理它们,即删除或添加(通过link())product_category 中的条目特定产品的表格。
【问题讨论】:
标签: php activerecord yii2