0

私は私の手に次の問題を抱えています。私のサイトには、駐車場をモデル化する拡張機能 (私が作成したもの) があります。車両があり (ドイツ語: Fahrzeug はそれについて心配しています。将来、コード/投稿でドイツ語を使用する場合)、VCategories (FzKategorie) があります。これらは N-1 関係にあり、N 車両がすべて 1 つのカテゴリ最小/最大を持つことを意味します。このタスク用に 2 つ目のプラグインを作成し、デフォルト アクションの ListByCateory を指定しました。今、私はいつ結果をフィルタリングするか、どのカテゴリ項目を表示する必要があるか、どのようにコントローラと 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>

誰が私の主張を理解し、誰が私を助けることができますか? 私は明日までこれを働かせる必要があります。:_(

4

1 に答える 1

0

カテゴリに一致する車両を DB から取得するだけではどうですか? TCA を適切に設定すると、代わりに

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

試す

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

ほとんどの場合、構成可能にしたいと考えてい$categoryます。お手伝いが必要な場合はお知らせください。

于 2015-03-25T15:53:04.560 に答える