فهرست منبع

Merge branch 'develop'

* develop:
  check if term exists
  add query to find term by it's name
ksieren 2 سال پیش
والد
کامیت
7c02b349b2
2فایلهای تغییر یافته به همراه20 افزوده شده و 1 حذف شده
  1. 1 1
      Classes/Controller/TermController.php
  2. 19 0
      Classes/Domain/Repository/TermRepository.php

+ 1 - 1
Classes/Controller/TermController.php

@@ -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);

+ 19 - 0
Classes/Domain/Repository/TermRepository.php

@@ -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.
        *