2015-03-25 4 views
0

У меня была следующая проблема с моей стороны. Мой сайт имеет расширение (написанное мной), которое моделирует парк автомобилей. Есть транспортные средства (немецкий: Fahrzeug sry об этом и в будущем, когда я использую немецкий в своем коде/сообщении), и есть VCategories (FzKategorie). Они стоят в соотношении N-1, то есть у автомобилей N есть все 1 категории min/max. Я создал второй плагин для задачи и дал ему действие по умолчанию: ListByCateory. Теперь я застрял, КОГДА я отфильтровывал свои результаты, WHERE передавать аргументы, которые должны отображаться в категориях, и КАК понимать контроллеры и Fluid Templates в целом. Я читал в целом (устаревший и отсутствующий код кода), и я еще не могу продолжить.Контроллеры и шаблоны (как правильно фильтровать результаты или давать аргументы через бэкэнд?)

<?php 
namespace Y7group\Y7Fahrzeugdatenbank\Controller; 
/** 
* FahrzeugController 
*/ 
class FahrzeugController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController { 
    /** 
    * fahrzeugRepository 
    * 
    * @var \Y7group\Y7Fahrzeugdatenbank\Domain\Repository\FahrzeugRepository 
    * @inject 
    */ 
    protected $fahrzeugRepository = NULL; 
    [...] 
    /** 
    * action listByCategory 
    * 
    * @return void 
    */ 
    public function listByCategoryAction(){//\Y7group\Y7Fahrzeugdatenbank\Domain\Model\FzKategorie $cat) { 
     $vehicles = $this->fahrzeugRepository->findAll(); // get all vehicles 
     $this->view->assign('category', 1); // here assign another variable like $cat. 
     $this->view->assign('vehicles', $vehicles); // hand over the query results 
    } 
} 

А вот мой шаблон:

<f:layout name="Default" /> 
<f:section name="main"> 
<h1>Alle Fahrzeuge Category</h1> 
<f:flashMessages renderMode="div" /> 
<table class="tx_y7fahrzeugdatenbank" > 
<tr> 
    <th><f:translate key="tx_y7fahrzeugdatenbank_domain_model_fahrzeug.name" /></th> 
    <th><f:translate key="tx_y7fahrzeugdatenbank_domain_model_fahrzeug.beschreibung" /></th> 
    <th><f:translate key="tx_y7fahrzeugdatenbank_domain_model_fahrzeug.bild" /></th> 
    <th><f:translate key="tx_y7fahrzeugdatenbank_domain_model_fahrzeug.datenblatt" /></th> 
</tr> 

<f:for each="{vehicles}" as="fahrzeug"> 
<f:if condition="{category}=={fahrzeug.category}"> 
    <tr> 
     <td><f:link.action action="show" arguments="{fahrzeug : fahrzeug}"> {fahrzeug.name}</f:link.action></td> 
     <td><f:link.action action="show" arguments="{fahrzeug : fahrzeug}"> {fahrzeug.beschreibung}</f:link.action></td> 
     <td><f:image src="{fahrzeug.bild.originalResource.originalFile.uid}" alt="{fahrzeug.beschreibung}" width="300"/></td> 
     <td><f:link.action action="show" arguments="{fahrzeug : fahrzeug}"> {fahrzeug.datenblatt.originalResource.name}</f:link.action></td> 
    </tr> 
</f:if> 
</f:for> 

Кто получить мой пункт и кто может помочь мне? Я работаю до завтра. : _ (

ответ

0

Как насчет просто получать транспортные средства из БД, которая соответствует вашей категории Если вы настроили свой TCA должным образом, вместо того, чтобы

$vehicles = $this->fahrzeugRepository->findAll(); 

попробовать

$vehicles = $this->fahrzeugRepository->findByCategory($category); 

Вы, скорее всего, хотят чтобы сделать конфигурацию $category. Сообщите мне, если вам нужна помощь.

+0

Thx, мне нужна помощь в том, как передать атрибуты таким образом. Как мне вызвать плагин из меню, если по умолчанию метод нуждается в аргументе, подобном категории? – Marc