我試圖將新行保存到報價中,但Yii不保存QuoteRow。它只保存新的服務(是的,DB結構有點奇怪)。我似乎無法弄清楚。如果該行沒有保存,$ qr-> save()應該返回false,但不會。該服務成功插入,但quoterow不是。新記錄沒有保存,也沒有錯誤信息
$service = new Services;
$service->label = $row['title'] ?: "Övrigt";
$service->is_priced_per_unit = 1;
$service->price_per_unit = $row['price']*0.8;
$service->is_default = 0;
$service->rot_deductable = (int)isset($row['rot']);
$service->rot_deduction_percentage = 0.5;
if (!$service->save()) $this->addError('Kunde inte spara raden',$service->getErrors());
else{
$qr = new QuoteRows;
$qr->quote_service_id = Yii::app()->db->getLastInsertID();
$qr->quote_id = $id;
$qr->unit_size = $row['amount'] ?: 0;
$qr->raw_price = $row['price']*0.8*($row['amount'] ?: 1);
$qr->is_rot_deductable = isset($row['rot']) ? 1 : 0;
$qr->is_active = 1;
if (!$qr->save()) $this->addError('Kunde inte spara raden',$qr->getErrors());
}
如果$ qr沒有保存,我應該得到錯誤。我也嘗試使用驗證函數驗證$ qr,並聲明它非常有效!
僅僅因爲它通過Yii的驗證並不意味着插入時沒有mysql錯誤。你有沒有檢查你的錯誤日誌?您是否啓用了調試模式? – Pitchinnate
Pitchinnate - 是否意味着save()會隱藏一個SQL錯誤? – grantwparks