Tôi có mối quan hệ sau trong đơn vị học thuyết của tôi:thuyết 2: Tiết kiệm Entity trong mối quan hệ phức tạp
FavoriteRecipe
/**
* @ManyToOne(targetEntity="User", inversedBy="favoriteRecipes")
*/
private $user;
/**
* @ManyToOne(targetEntity="Recipe", inversedBy="favoriteRecipes")
*/
private $recipe;
Recipe
/**
* @OneToMany(targetEntity="FavoriteRecipe", mappedBy="user")
*/
private $favoriteRecipes;
tài
/**
* @OneToMany(targetEntity="FavoriteRecipe", mappedBy="user")
*/
private $favoriteRecipes;
Trong một bộ điều khiển của tôi, tôi có đoạn mã sau:
$favoriteRecipe = new \Entities\FavoriteRecipe();
$favoriteRecipe->setRecipe($recipe);
$favoriteRecipe->setUser($user);
$this->_em->persist($favoriteRecipe);
$this->_em->flush();
Nhưng điều này ném một ngoại lệ với thông báo sau:
Một thực thể mới được tìm thấy thông qua một mối quan hệ đó là không được định cấu hình để xếp hàng hoạt động liên tục: Thực thể \ User @ 00000000408bd010000000007cb1380e. Rõ ràng vẫn tồn tại thực thể mới hoặc định cấu hình hoạt động liên tục xếp tầng trên mối quan hệ .
Làm cách nào để tạo và lưu chính xác thực thể FavoriteRecipe
?
Để mà bên liên kết để tôi thêm tùy chọn xếp tầng? Phía sở hữu hoặc mặt nghịch đảo? – moteutsch
Nó phụ thuộc vào hành vi mà bạn muốn nhưng trong tình huống của bạn, tôi nghĩ rằng mặt nghịch đảo. Tôi sẽ nói thử nó, và nhìn những gì vui vẻ trong cơ sở dữ liệu. –
Và tôi sẽ thêm "và quay lại đây để chia sẻ những phát hiện của bạn". Mọi người đã giúp bạn, đừng quên giúp mọi người :) – Ninj