Fixed relations being wiped out when saving
The code worked like this: 1. Delete old relations 2. Get related entities 3. Save old relations If the entity hasn't retrieved relations until now, autoloader tried to get related entities /after/ they were deleted.
This commit is contained in:
parent
f72b0216a5
commit
3dbb2b06be
2 changed files with 7 additions and 8 deletions
|
@ -257,9 +257,6 @@ class PostDao extends AbstractDao implements ICrudDao
|
||||||
|
|
||||||
private function syncPostRelations(Post $post)
|
private function syncPostRelations(Post $post)
|
||||||
{
|
{
|
||||||
$this->pdo->deleteFrom('postRelations')->where('post1id', $post->getId())->execute();
|
|
||||||
$this->pdo->deleteFrom('postRelations')->where('post2id', $post->getId())->execute();
|
|
||||||
|
|
||||||
$relatedPostIds = array_filter(array_unique(array_map(
|
$relatedPostIds = array_filter(array_unique(array_map(
|
||||||
function ($post)
|
function ($post)
|
||||||
{
|
{
|
||||||
|
@ -269,6 +266,8 @@ class PostDao extends AbstractDao implements ICrudDao
|
||||||
},
|
},
|
||||||
$post->getRelatedPosts())));
|
$post->getRelatedPosts())));
|
||||||
|
|
||||||
|
$this->pdo->deleteFrom('postRelations')->where('post1id', $post->getId())->execute();
|
||||||
|
$this->pdo->deleteFrom('postRelations')->where('post2id', $post->getId())->execute();
|
||||||
foreach ($relatedPostIds as $postId)
|
foreach ($relatedPostIds as $postId)
|
||||||
{
|
{
|
||||||
$this->pdo
|
$this->pdo
|
||||||
|
|
|
@ -188,11 +188,6 @@ class TagDao extends AbstractDao implements ICrudDao
|
||||||
|
|
||||||
private function syncRelatedTagsByType(Tag $tag, array $relatedTags, $type)
|
private function syncRelatedTagsByType(Tag $tag, array $relatedTags, $type)
|
||||||
{
|
{
|
||||||
$this->pdo->deleteFrom('tagRelations')
|
|
||||||
->where('tag1id', $tag->getId())
|
|
||||||
->where('type', $type)
|
|
||||||
->execute();
|
|
||||||
|
|
||||||
$relatedTagIds = array_filter(array_unique(array_map(
|
$relatedTagIds = array_filter(array_unique(array_map(
|
||||||
function ($tag)
|
function ($tag)
|
||||||
{
|
{
|
||||||
|
@ -202,6 +197,11 @@ class TagDao extends AbstractDao implements ICrudDao
|
||||||
},
|
},
|
||||||
$relatedTags)));
|
$relatedTags)));
|
||||||
|
|
||||||
|
$this->pdo->deleteFrom('tagRelations')
|
||||||
|
->where('tag1id', $tag->getId())
|
||||||
|
->where('type', $type)
|
||||||
|
->execute();
|
||||||
|
|
||||||
foreach ($relatedTagIds as $tagId)
|
foreach ($relatedTagIds as $tagId)
|
||||||
{
|
{
|
||||||
$this->pdo
|
$this->pdo
|
||||||
|
|
Loading…
Reference in a new issue