私は$has_many
ProductPages
のDataObject Product
を持っています。 MyObject()->getComponents('SomePages')
は、Product
オブジェクトに関連付けられたすべてのライブページを返します。has_manyのページgridfieldドラフト段階
このオブジェクトに添付されているすべてのページ(Draft and Published)を知っておく必要があります。GridFieldのインライン編集(URLやタイトルなどの他のページプロパティの変更だけでなく、
私は実行して、すべてのドラフトProductPage
Sを得ることができた:
$gridfieldList = Versioned::get_by_stage('ProductPage', 'Stage')
->filter(array(
"ProductID" => $this->ID
));
これは、製品ページのデータリストを返しますが、私の関連する製品のコンテキストの知識がないと、私は[保存]をクリックしますしようとすると、何も起こりませんを意味します。
GridFieldにデータを埋め込むために$this->getComponents('ProductPages')
を使用すると、フォームの送信時にすべての変更が正しく保存されますが、ページを公開しないとGridFieldから「削除」されます。
は、だから私の質問は、私は、オブジェクトの関連ページはまだ彼らのコンテキスト(すなわち、変更が正常に保存された)を意識しながら、私のGridFieldを移入持ってここに取ることができたアプローチで、基本的にはありますか?
私はこのサイト上のSS 3.1.5を実行していることは注目に値する=/
おかげで@wmkを参照してください。 「それは私のためにやったよ。乾杯。コードのコメントから – leomeloxp
@leomeloxpは:かかわらず、彼らが特定の段階にあるかどうかの、最新バージョンのインスタンスを返します : 'latest_versionは一歩を持っています。これにより、「削除された機能を含むすべての機能を表示」 – wmk