いくつかのプロパティを持ち、同じ拡張機能で 2 番目のモデルと 1:1 の関係を持つ 1 つのモデルを取得しました。その 2 番目のモデルを tt_content に完全にマップしたいと考えていました。そのため、ユーザーは最初のモデルに tt_content オブジェクトを挿入できます。
BE では問題ありません。最初のモデルからオブジェクトを挿入でき、そこに tt_content オブジェクトを挿入できます。データベースで、私の最初のモデルは tt_content オブジェクトの uid である「コンテンツ」列を取得したので、すべてが正しいと思いました...
しかし、次にコントローラーに...何も取得しません...「コンテンツ」プロパティのNULL値だけです...
これは私が「コンテンツ」プロパティをテストした方法です:
$contentBoxes = $this->contentBoxRepository->findAll();
print(gettype($contentBoxes->current()->getContent()));
そしてそれはただ「NULL」を返します
aaaaaand ここに tt_content オブジェクトを含む最初のモデルに関するいくつかの情報があります:
最初のモデル:
class Tx_PlusbSlidingcontent_Domain_Model_ContentBox extends Tx_Extbase_DomainObject_AbstractEntity {
/**
* Content
*
* @var Tx_PlusbSlidingcontent_Domain_Model_Content
*/
protected $content;
...........
/**
* Returns the content
*
* @return Tx_PlusbSlidingcontent_Domain_Model_Content $content
*/
public function getContent() {
return $this->content;
}
/**
* Sets the content
*
* @param Tx_PlusbSlidingcontent_Domain_Model_Content $content
* @return void
*/
public function setContent(Tx_PlusbSlidingcontent_Domain_Model_Content $content) {
$this->content = $content;
}
...............
}
2 番目のモデル:
class Tx_PlusbSlidingcontent_Domain_Model_Content extends Tx_Extbase_DomainObject_AbstractEntity {
}
最初のモデルの TCA の「コンテンツ」セクション:
'content' => array(
'exclude' => 0,
'label' => 'LLL:EXT:plusb_slidingcontent/Resources/Private/Language/locallang_db.xml:tx_plusbslidingcontent_domain_model_contentbox.content',
'config' => array(
'type' => 'inline',
'foreign_table' => 'tt_content',
'minitems' => 0,
'maxitems' => 1,
'appearance' => array(
'collapseAll' => 0,
'levelLinksPosition' => 'top',
'showSynchronizationLink' => 1,
'showPossibleLocalizationRecords' => 1,
'showAllLocalizationLink' => 1
),
),
),
そして、TSセットアップで、これを「永続性」に追加しました:
classes {
Tx_PlusbSlidingcontent_Domain_Model_Content {
mapping {
tableName = tt_content
columns {
}
}
}
}
その構成のどこにエラーがあるのか わかりません...リポジトリ/モデル/何かは、最初のモデルのコンテンツプロパティを2番目のモデルのオブジェクトで自動入力する必要はありませんか? 少なくとも空のもの?