也許我剛去過的完全無知解決我的問題,並地獄,也許它內置的...我只是一直沒能找到這樣的解決方案。過去兩週我一直在被動地看着,並積極在最後一天。如何處理symfony應用程序中的外鍵約束?
我怎樣才能優雅在symfony中處理外鍵約束?
我已經考慮捕捉異常(Doctrine_Connection_Exception)和假設這是一個外鍵約束,然後轉發用戶錯誤模塊與外鍵約束的動作。然而,代碼冗餘是非常殘酷的,即使我把它放到我的基本操作類中,也不得不在每次調用數據庫時都放置一個try-catch塊,這會變得很糟糕。 更不用說,對於外鍵約束的例外情況的假設是一個可怕的想法,因爲當存在SQL語法和實際連接錯誤時也會調用此異常。
我想過使用從異常類繼承的getPortableCode()和getPortableMessage()方法來確定它是否是外鍵約束(他們可以這樣做),但它們絕對不會提供任何信息關於約束本身。例如,當拋出一個約束異常時,getPortableCode()返回'-5',getPortableMessage()返回'already exists'。當然,如果存在單個約束條件,我可能會弄清楚失敗併爲用戶拋出錯誤,但是,當然,我已經使用多個約束使事情變得複雜。
反正夠我散漫的,我試圖找出什麼其他開發商都在我的情況做...看起來這應該是涵蓋在低迷的「溫柔的介紹。」
我不太確定你想要達到的目標。爲什麼你想要在操作中處理外鍵?不是表單驗證你在找什麼? – 2010-12-20 07:39:23