問題:
WordPress Symfony バンドルに取り組んでおり、そのエンティティを作成しています。
エンティティがあり、Commentエンティティに$comment->userマップされていUserます。
ただし、 WordPress0はゲスト ユーザーを表すために使用します。ID 0 のユーザーは決して存在しないため、Doctrine で多くの問題が発生します。これにより、次の問題が発生します。
$comment->getUser()行が の場合、エンティティが見つからないという例外をスローする可能性がありuser_idます0。$comment->setUser()nullrepensent guest には使用できず( を使用する必要0があります)、new User(0)どちらも使用できないため、 は機能しません。
質問:
デフォルトでは、次のコードはデータベースの列に保存nullします:user_id
$comment->setUser(null);
Doctrine を0(代わりにnull)user_id列に保存することはできますか?
またはさらに良いことに、列を扱うときに0とを交換できますか?nulluser_id
お時間をいただきありがとうございます。
テストケース:
// if a guest posted a comment, pass null to setUser()
// although the actual value will be saved to user_id column is 0
$guestComment->setUser(null);
// if a comment was posted by a guest, getUser() should return null
// although the actual value returned by user_id column is 0
$guestComment->getUser(); // return null
// if a member posted a comment, pass a User entity to setUser()
$memberComment->setUser(new User());
// if a comment was posted by a member, getUser() should return the User entity
$guestComment->getUser(); // return User entity.
方向:
カスタム マッピング タイプの作成を検討しています http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/types.html