我有一个产品表,其中每种类型的关联(另一个表)都有一个价格。
这把我带到了桌子上:
# product
# associate_types
## description
# associate_prices
## product_id
## associate_type_id
## price
产品型号关系:
'prices' => array(self::HAS_MANY, 'AssociatePrices', 'id_product')
联营价格:
'associateType' => array(self::BELONGS_TO, 'AssociateTypes', 'id_associate_type'),
现在,在 Product 表单上,我正在显示各种 AssociateTypes,以便用户填写所有 AssociateTypes 的价格,并且我管理得很好:我正在获取 associateTypes,已经为这个给定产品插入的价格和然后越过它们。
为了更新/创建这些条目,我在 Product 的 afterSave() 中有以下代码:
if(isset($_POST['AssociatePrices'])) {
$this->pricesDup = array(); // overwriting current price setting
foreach ($_POST['AssociatePrices'] as $i => $price) {
$this->pricesDup[$i] = AssociatePrices::model();
$this->pricesDup[$i]->attributes = $price;
$this->pricesDup[$i]->id_product = $this->id;
$this->pricesDup[$i]->save(false);
}
}
$this->pricesDup
是我刚弄出来的一个属性,因为我不能玩$this->prices
。
发生的事情是,即使 save() 方法返回 true,数据库也保持不变。
我已经从 yii 框架论坛上阅读了很多东西,但这些东西都没有真正适用于我的案例。我究竟做错了什么?
非常感谢
编辑: Products 模型也有一个 beforeSave() 函数,但它与这个问题无关。即使我根据要求在此处发布(部分)它。
/**
* This function's mission is to handle the file upload.
*/
public function beforeSave()
{
parent::beforeSave();
// File uploading
if (is_object($this->image)) {
$dir = PRODUCTS_FILES_PATH;
$current = Yii::app()->getRequest()->getPost('currentImage');
if (!empty($current))
@unlink($dir.$current);
$name = $this->image->name;
$j = 1;
while (file_exists($dir . $name)) {
//....
}
$this->image->saveAs($dir.$name, true);
$this->image = $name;
}
return true;
}