5

ページテーブルを拡張しましたが、「タグ」と呼ばれるドメインオブジェクトのデータの一部を使用したいと思います。
だから私は:で次のことを試しました/Configuration/TypoScript/setup.txt

plugin.myextension.persistence.classes.Tx_myextension_Domain_Model_Tag {
    mapping {
        tableName = pages
        recordType = Tx_myextension_Domain_Model_Tag
        columns {
            tx_myextension_tag_name.mapOnProperty = name
            uid.mapOnProperty = id
        }
    }
}

しかし、拡張機能がテーブルTx_myextension_Domain_Model_Tag(存在しない)にアクセスしようとしているようです

これは私が受け取るエラーです:

Tx_Extbase_Persistence_Storage_Exception_SqlError`

テーブル'tx_myextension_domain_model_tag'は存在しません:SELECTtx_myextension_domain_model_tag。*FROM tx_myextension_domain_model_tag WHERE tx_myextension_domain_model_tag.id = '24' LIMIT 1

私は何を間違えましたか?

4

7 に答える 7

3

拡張機能のタイポスクリプト テンプレートをテンプレートに含めることを忘れないでください (テンプレート > テンプレート全体を編集 > 静的テンプレートを含める)。そうしないと、setup.txt が評価されません。

于 2011-02-22T07:21:45.457 に答える
3

許容できるレコード タイプを確認するには、BE の設定モジュールを使用します。$TCA セクションでテーブル (この場合は [pages]) を見つけ、タイプ列 (...[ctrl][type] - ページの場合は 'doktype) を確認します。 '、ページ レコードが標準ページか sysfolder かなどを決定します)。

この列はデータベースでは tinyint(3) であるため、値 'Tx_myextension_Domain_Model_Tag' を書き込むことはできません。番号で識別される新しい doktype を ext に作成し、recordType をそれに設定します。

ページのタイプが問題にならない場合は、必要に応じてマッピング構成から recordType を削除できます。

于 2012-01-25T16:27:18.803 に答える
2

「plugin.myextension」の代わりに「config.tx_extbase」を試しましたか?

何かのようなもの

config.tx_extbase.persistence.classes.Tx_MyExtension_Domain_Model_Tag.mapping.tableName = pages

私のために働きます。

于 2010-12-13T15:12:37.370 に答える
0

eIDを使用したtypo3呼び出しでこれを行いますか? ここでは、いくつかの構成がロードされていません..

はいの場合は、すべての構成をロードして問題が解決するかどうか試してください。

    ...
    $GLOBALS['TSFE'] = \t3lib_div::makeInstance('tslib_fe', $TYPO3_CONF_VARS, $_GET["id"], 0, true);
    //$GLOBALS['TSFE'] = new $temp_TSFEclassName();
    $GLOBALS['TSFE']->connectToDB();
    $GLOBALS['TSFE']->initFEuser();
    $GLOBALS['TSFE']->determineId();
    $GLOBALS['TSFE']->getCompressedTCarray();
    $GLOBALS['TSFE']->initTemplate();
    $GLOBALS['TSFE']->getConfigArray();
    ...
于 2013-02-04T20:44:37.310 に答える
0

個々のページを recordtype として指定しましたTx_myextension_Domain_Model_Tagか? ページ テーブルのフィールドに入るはずdoctypeです (したがって、そのフィールドの mysql データ型を変更する必要があります。そうしないと、Extbase は、この特定のページが extbase レコードであり、通常のページではないことを認識しません。シングルについての詳細を参照してください。 Extbase でのテーブル継承 (STI): http://pascal-jungblut.com/blog/blog-post/2010/11/06/single-table-inheritance-in-extbase.html

于 2011-03-06T20:22:48.827 に答える
0

Tx_myextension_Domain_Model_Tag はオブジェクトの名前ですよね? しかし、これはアクセスしようとしているテーブルの名前ではないと思います。したがって、値「tableName」に指定している名前が間違っていると思います。「ページ」には何が含まれていますか?

于 2010-11-05T15:40:27.917 に答える