我有一個類似的問題,解釋爲in this post但提供的解決方案在我的情況下不起作用。這是問題...Doctrine2生成替代SQL默認值的INSERT語句
我正在使用Symfony2,它爲ORM使用Doctrine2,將新用戶插入數據庫。當我使用對象方法來插入用戶時,將一個空值插入到我不想插入任何內容的字段中(所以默認值將被插入)。
這是我想怎麼產生的INSERT語句來看看:
INSERT into mytable (name) VALUES (?)
array(1) {
[1]=>
string(6) "myName"
}
這是教義是如何創建的INSERT語句
INSERT into mytable (name, token, creationDate) VALUES (?,?,?)
array(3) {
[1]=>
string(6) "myName"
[2]=>
NULL
[3]=>
NULL
}
令牌應該有一個使用定義的默認值postgresql的uuid_generate_v5方法。 creationDate應該具有now()的默認值。教義正在插入的NULL值會覆蓋這些默認值。
有什麼辦法讓學說在插入時忽略某些字段?
您可以將默認值放置在模型對象的構造函數中。 – Nanocom
@Nanocom +1你不應該將默認值放在數據庫中,用Doctrine 2映射的字段。將默認值放在構造函數中,或者直接放在字段聲明中。 – Benjamin
謝謝你。我沒有使用構造函數的原因是因爲有其他應用程序使用此數據庫,並且它們使用db中的默認值。使用相同的方法來生成令牌會很好。但如果不可能,那麼我可能需要考慮其他選項。謝謝 – setharell