2016-08-10 8 views
0

私は、特定のタイプのすべてのページを一覧表示するプラグインを開発中です。私は、問題なく新しいタイプを追加しました。また、ページのカテゴリを表示したかったのですが、テンプレート内のオブジェクトをデバッグすると、そのページに関連付けられたカテゴリの数だけが表示されます。カテゴリにページオブジェクトが返されない

リポジトリはページのカテゴリを返さないため、その理由が見つかりません。また、テストとして、通常のページが子どもを返すかどうかを確認しましたが、ページに割り当てられたカテゴリの数もカウントされません。

sys_category_record_mmテーブルを調べて、行が正しく作成されています。私はTCAのカテゴリに触れていません。

これはsys_category TCAで項目設定がある

items 
    config 
     allowed = * 
     internal_type = db 
     MM = sys_category_record_mm 
     MM_oppositeUsage 
     pages 
      0 = categories 
     sys_file_metadata 
     tt_content 
     tx_news_domain_model_news 
      0 = categories 
     show_thumbs = 
     size = 10 
     type = group 
    exclude = 0 
    label = LLL:EXT:lang/locallang_tca.xlf:sys_category.items 

これは、私はより多くのカテゴリセレクタを追加しませんでした

categories 
    config 
     autoSizeMax = 50 
     foreign_table = sys_category 
     foreign_table_where = AND sys_category.sys_language_uid IN (-1, 0) ORDER BY sys_category.sorting ASC 
     maxitems = 9999 
     MM = sys_category_record_mm 
     MM_match_fields 
      fieldname = categories 
      tablenames = pages 
     MM_opposite_field = items 
     renderType = selectTree 
     size = 10 
     treeConfig 
      appearance 
       expandAll = 1 
       maxLevels = 99 
       showHeader = 1 
      parentField = parent 
     type = select 
    exclude = 1 
    label = LLL:EXT:lang/locallang_tca.xlf:sys_category.categories 

TCAでカテゴリ設定私のページですページ。手動またはmakeCategorizableを経由してください。これにより、デフォルトの設定にする必要があります。

答えて

1

というオブジェクトについては、extbaseを使用していますか?はいの場合、カテゴリのプロパティがモデルに間違った型を持っています。あなただけsys_category_record_mmに追加のクエリを実行する、extbaseを使用していない場合は、文字列の代わりに、応じてカウントを取得するために

/** 
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\Category> 
* @lazy 
*/ 
protected $categories; 

を使用しています。

+0

私のプラグインはextbaseを使用しています。しかし、私はTYPO3 \ CMS \ Frontend \ Page \ PageRepositoryを使用しているので、extbaseから何も拡張していないことに気づきました。私はそれを手動で行う必要がありますね。ありがとうございました。 –

関連する問題