控制器和模板(如何正确过滤结果或通过后端提供参数?)

时间:2015-03-25 08:55:51

标签: typo3 fluid typo3-extensions

我手上有以下问题。我的网站有一个扩展(由我编写),用于管理车辆停放。有车辆(德语:Fahrzeug sry关于那个以及将来我在我的代码/帖子中使用德语)并且有VCategories(FzKategorie)。它们处于N-1关系,意味着N辆车具有所有1类最小/最大值。我为该任务创建了第二个插件,并为其提供了默认操作:ListByCateory。现在我被困在什么时候过滤我的结果,在哪里交出哪些类别项目应该显示的参数以及如何理解控制器和流体模板。我读了整个(过时的和缺失的//代码)扩展developiong文档,但我无法进一步了解。

<?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 个答案:

答案 0 :(得分:0)

如何从与您的类别相匹配的数据库中获取车辆?如果您正确设置了TCA,而不是

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

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

您最有可能希望$category可配置。如果您需要帮助,请告诉我。