Контроллеры и Шаблон (как правильно фильтровать результаты или давать аргументы через бэкэнд?)
У меня на руке следующая проблема. Мой сайт имеет расширение (написанное мной), которое моделирует автопарк. Есть транспортные средства (немецкий язык: Fahrzeug sry об этом и в будущем, когда я использую немецкий язык в своем коде / посте), и есть VCategories (FzKategorie). Они стоят в соотношении N-1, что означает, что N транспортных средств имеют все 1 категории мин / макс. Я создал второй плагин для задачи и назначил ему действие по умолчанию: ListByCateory. Теперь я застрял, КОГДА фильтровать мои перезапуски, ГДЕ передать аргументы, какие элементы категории должны быть показаны, и КАК разобраться с контроллерами и шаблонами жидкостей в целом. Я прочитал документацию по разработке полного (устаревшего и отсутствующего // кода) и пока не могу получить дальнейшее развитие.
<?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>
Кто понял мою точку зрения и кто может мне помочь? У меня все получится до завтра.:_(
1 ответ
Как насчет получения автомобилей из БД, которые соответствуют вашей категории? Если вы правильно настроили TCA вместо
$vehicles = $this->fahrzeugRepository->findAll();
пытаться
$vehicles = $this->fahrzeugRepository->findByCategory($category);
Вы, скорее всего, хотите сделать $category
настраивается. Дайте мне знать, если вам нужна помощь с этим.