* develop: check if term exists add query to find term by it's name
@@ -15,7 +15,7 @@ class TermController extends ActionController
public function createAction($terms, $categoryObj, $typeObj, $urlObj): void {
foreach ($terms as $term) {
- if($term !== '') {
+ if($term !== '' && !($this->termRepository->findByTitle($term))) {
$termObj = new Term();
$termObj->setTerm($term);
$termObj->setCategory($categoryObj);
@@ -11,6 +11,25 @@
class TermRepository extends Repository
{
+ /**
+ * Find one record by 'title'.
+ *
+ * @return \TYPO3\CMS\Extbase\Persistence\QueryResultInterface|array
+ */
+ public function findByTitle($term)
+ {
+ $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_begriffmgt_domain_model_term');
+ return $query = $queryBuilder
+ ->select('*')
+ ->from('tx_begriffmgt_domain_model_term')
+ ->where(
+ $queryBuilder->expr()->eq('term', $queryBuilder->createNamedParameter($term, \PDO::PARAM_STR))
+ )
+ ->setMaxResults(1)
+ ->execute()
+ ->fetch();
+ }
+
/**
* Find all records and order them by 'term' in ascending order.
*