mirror of
https://github.com/shlinkio/shlink.git
synced 2025-02-25 18:45:27 -06:00
Trying to automatically persist tags
This commit is contained in:
@@ -60,6 +60,7 @@ $builder->createManyToMany('tags', Entity\Tag::class)
|
|||||||
->setJoinTable('short_urls_in_tags')
|
->setJoinTable('short_urls_in_tags')
|
||||||
->addInverseJoinColumn('tag_id', 'id', true, false, 'CASCADE')
|
->addInverseJoinColumn('tag_id', 'id', true, false, 'CASCADE')
|
||||||
->addJoinColumn('short_url_id', 'id', true, false, 'CASCADE')
|
->addJoinColumn('short_url_id', 'id', true, false, 'CASCADE')
|
||||||
|
->cascadePersist()
|
||||||
->build();
|
->build();
|
||||||
|
|
||||||
$builder->createManyToOne('domain', Entity\Domain::class)
|
$builder->createManyToOne('domain', Entity\Domain::class)
|
||||||
|
|||||||
@@ -24,21 +24,20 @@ trait TagManagerTrait
|
|||||||
$entities = [];
|
$entities = [];
|
||||||
foreach ($tags as $tagName) {
|
foreach ($tags as $tagName) {
|
||||||
$tagName = $this->normalizeTagName($tagName);
|
$tagName = $this->normalizeTagName($tagName);
|
||||||
$tag = $em->getRepository(Tag::class)->findOneBy(['name' => $tagName]) ?: new Tag($tagName);
|
$tag = $em->getRepository(Tag::class)->findOneBy(['name' => $tagName]) ?? new Tag($tagName);
|
||||||
$em->persist($tag);
|
|
||||||
|
// if (! $tag) {
|
||||||
|
// $tag = ;
|
||||||
|
// $em->persist($tag);
|
||||||
|
// }
|
||||||
|
|
||||||
$entities[] = $tag;
|
$entities[] = $tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Collections\ArrayCollection($entities);
|
return new Collections\ArrayCollection($entities);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
private function normalizeTagName(string $tagName): string
|
||||||
* Tag names are trimmed, lower cased and spaces are replaced by dashes
|
|
||||||
*
|
|
||||||
* @param string $tagName
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
private function normalizeTagName($tagName): string
|
|
||||||
{
|
{
|
||||||
return str_replace(' ', '-', strtolower(trim($tagName)));
|
return str_replace(' ', '-', strtolower(trim($tagName)));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user