2015-05-10 7 views
0

Моя модель extbase «show», получила множество записей «производство». Производство может быть «закончено» или «текущим». Об этом говорится в Модели производства.Extbase/TYPO3 - Как сгенерировать запрос

В «Шоу» -Показать, я хочу перечислить текущие постановки и законченные. В настоящее время его можно указать только с <f:for each="{productions}"...> и условием.

Но я хочу, чтобы это сделать, как в этом случае <f:for each="{currentProductions}"... или <f:for each="{endedProductions}"...

Поэтому я написал запрос для моего репозитория производств:

public function aktuelleProduktionen(Musicalplanet\MpDatenbank\Domain\Model\Produktionen $produktionen) { 
    $query = $this->createQuery(); 
    $query->matching(
     $query->logicalOr(
      $query->equals('openend', '1'), 
      $query->equals('abgelaufen', '0') 
      ) 
     ); 
    return $query->execute(); 
} 

, но сейчас я действительно не знаю, как сделать он работает. Для меня неясно, где его добавить, чтобы использовать его так, как мне нужно.

+0

Не могли бы вы уточнить, «где его добавить и использовать»? Что вы пробовали? –

+2

(не по теме) старайтесь избегать методов именования в неанглийском языке - вы избежите языковых монстров, таких как 'getProduktFromKorb';), а также нам будет легче помочь вам – biesior

ответ

1

Прежде всего, я думаю, что ваш метод запроса должен быть больше, как это, чтобы получить постановки шоу:

public function aktuelleProduktionen(Musicalplanet\MpDatenbank\Domain\Model\Show $show) { 
    $query = $this->createQuery(); 
    $query->matching(
     $query->logicalAnd(
      $query->equals('show', $show->getUid()), 
      $query->logicalOr(
       $query->equals('openend', '1'), 
       $query->equals('abgelaufen', '0') 
     ) 
    ) 
); 
    return $query->execute(); 
} 

Я думаю, когда у вас есть шоу-модель, у вас есть шоу-контроллер , слишком. Внутри этого, вы должны вводить свой ProductionRepository:

/** 
* programRepository 
* 
* @var \Musicalplanet\MpDatenbank\Domain\Model\ProduktionenRepository 
* @inject 
*/ 
protected $produktionenRepository; 

Теперь вы можете использовать свой собственный метод запроса, чтобы получить текущие спектакли из этого репозитария. Сделайте это в своем showAction().

public function showAction(Musicalplanet\MpDatenbank\Domain\Model\Show $show) { 
    $currentProductions = $this->produktionenRepository->aktuelleProduktionen($show); 
    $this->view->assign('currentProductions', $currentProductions); 
} 

Более или менее это должно работать. Надеюсь, это поможет.

Смежные вопросы