のexpertises
というプロパティを持つオブジェクトappointment
があります。
Expertise
の重要な特性の1つは、ブールchecked
です。私は私のAppointmentControllerで何をしたいのか空白および/またはObjectStorageオブジェクトのフィルタ
は次のとおりです。最初のアクションで
- :(私はちょうど私が何かを追加することができ、空
ObjectStorage
をしたい、NULL
に設定していないappointment
のプロパティexpertises
を空にする後) - 第2動作では:異なるオブジェクトから(
expertises
でappointment
を埋める)、そのプロパティchecked
true
空から始めるには、回答をhereから見ましたが、それは私のためには機能しませんでした。
$appExp = $appointment->getExpertises();
foreach ($appExp as $exp) {
$appExp->detach($exp);
}
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($appointment);
しかし、それはすべてのexpertises
がappointment
に残っていることを示しています
これは私が試したものです。私はこれを行う2番目のアクションで
:
foreach ($expertises as $expertise) {
if ($expertise->getChecked()) {
$appointment->addExpertise($expertise);
}
}
それは動作しますが、自動的にchecked
値をフィルタリングし、ObjectStorage
オブジェクトを返すことができます簡単に「フィルタ」機能があります場合、私は疑問に思います。この方法では、私はちょうどsetExpertises()
を使用することができ、古いものは上書きされ、最初のステップが不要になります。
誰かがObjectStorage
オブジェクトの空きとフィルタリングのアイデアを持っていますか? ObjectStorage Class referenceにちょっと見えましたが、それを空にする明白な機能はありません(のオブジェクトは現在のストレージの別のストレージに含まれています)、フィルタ機能もありません。
少なくとも、ObjectStorageを空にするには、新しいオブジェクトを作成して使用してください。このソリューションをsetExpertiseのようなObjectStorageゲッターに使用することはよくあります。新しいStorageを関数に渡すだけです。しかし、数日前、私はこのソリューションがうまくいきませんでした。 –
このように作成することも、別の方法で改善することもできますか? (私は、Typo3でオブジェクトをインスタンス化するためのさまざまな方法について読んだ後、ちょっと混乱します) '$ emptyStorage = new \ TYPO3 \ CMS \ Extbase \ Persistence \ ObjectStorage();' –