我的項目中有一個簡單的父子/標題行模型。問題在於它創造了一種循環關係或某種東西,並且不讓我在沒有孩子的情況下拯救父母!檢測關係已關閉!使用Doctrine 1.2保存父/子標題/行
detect_relations: false
...
BillHeader:
package: Billing
tableName: Bill_Headers
actAs:
SoftDelete: ~
columns:
id:
type: integer(8)
primary: true
notnull: true
autoincrement: true
....
BillLine:
package: Billing
tableName: Bill_Lines
actAs:
SoftDelete: ~
columns:
id:
type: integer(8)
primary: true
notnull: true
autoincrement: true
bill_header_id:
type: integer(8)
notnull: true
relations:
Bill_Header:
class: BillHeader
local: bill_header_id
foreign: id
foreignAlias: Bill_Lines
type: one
當我第一次救母:
$billHeader->save();
給出了錯誤:SQLSTATE [HY000]:常規錯誤:1452無法添加或更新子行:外鍵約束失敗(sokidb
bill_headers
,約束Bill_Headers_id_Bill_Lines_bill_header_id
外鍵(id
)參考文獻bill_lines
(bill_header_id
))當我做
$billHeader->Bill_Lines[] = $billLine;
GI VES錯誤:不支持BillLine該生產線將無法保存沒有父母,所以我甚至不能做
$billHeader->link('Bill_Lines', $billLines);
$billHeader->Bill_Lines = $billLines;
添加給出了錯誤Couldn」調用Doctrine_Core :: set()時,第二個參數應該是設置一對多引用時Doctrine_Collection的一個實例。如果我放棄的關係,做一個
$billHeader->save();
,然後$billHeader->id
返回空。所以那也行不通!
我不知道是否有第六種方法呢? :(
我厭倦了對這個問題的思考,似乎沒有解決方案,在這個和現在的線索上差不多3天了!它讓我自殺!爲什麼會這麼做?如果表是MyIsam,它會有所幫助嗎? ?InnoDB中的
任何幫助提前非常感謝 感謝
謝謝你的迴應傑里米。那麼,架構就在你面前! :)我試圖在BillHeader上定義關係,但仍然無效。 你提到的第二個關係也在創建,但第一個關係是意想不到的,並且產生了問題。我嘗試使用自動完成:false,但這似乎也不起作用! – Prasad 2010-07-21 10:07:41
是的,關鍵的確是繼續玩Schema。 但我學到的一件事是,通過生成的SQL確實有幫助! – Prasad 2010-07-29 15:57:09