問題タブ [extbase]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
typo3 - リスト ビューでの参照整合性
Extension Builder を使用して、TYPO3 v4.5 で拡張機能を作成しました。現在、作成/更新機能を持たないテーブルがいくつかあります。これは、あまり頻繁に変更されないためです (月に 1 回のみ)。それらを変更するには、TYPO3 でリスト ビューを使用したいと考えています。
それは機能します。レコードを作成および更新できます。しかし、他のレコードと関連しているレコードがある場合は、簡単に削除できます。もう一方のレコードには無効な値が含まれています。
例えば:
Rowling を削除すると、AuthorID フィールドに「無効な値」が表示されます。これを防ぐことはできますか?
編集: わかりました、これを防ぐ方法を見つけました: 拡張機能の TCE で predb フックを使用する必要があります。しかし、このコード (実験用のみ) は、レコードを削除すると機能しません。値が 1 の「deleted」という名前の配列要素を取得すると思ったのですが、表示されません。他のデータ (情報を変更したり、新しいレコードを作成した場合) が表示されます。
EDIT2: 最初の回答のコメントのように、 status == delete を使用して、typ3 がレコードを削除するかどうかを確認できます。しかし、削除された属性のデータを変更できない場合 (fieldArray にないため)、どうすればこれを防ぐことができますか? 手がかりはありますか?
回答ありがとうございます。
typo3 - ページ複製時にドメインモデルをコピーしない
tt_content 要素に関連付けられたドメイン モデルを持つ Extbase 拡張機能があります。ページまたはコンテンツ要素を削除すると、関連付けられているすべてのドメイン モデル アイテムも削除されます。これは良いことであり、私たちはその動作を望んでいます (そうしないと、孤児が置き去りにされてしまいます)。
しかし、クライアントは、ページが複製されたときに、このドメイン モデルのアイテムが複製されないことを望んでいます。コピー操作中にこの拡張機能のドメイン モデル項目を複製しないように TYPO3 に指示する方法はありますか?
編集:このプロジェクトでは TYPO3 4.5 を使用しています。
model-view-controller - 非 TYPO3 テーブルを使用した Extbase マッピング
私もクラスと 2 つの非 TYPO3 テーブルを持っています。非 TYPO3 テーブルを、uid、pid などの列のないテーブルとして定義しました。
私の2つのクラス:
- クラス Tx_Abc_Domain_Model_Location は Tx_Extbase_DomainObject_AbstractEntity を拡張します
- クラス Tx_Abc_Domain_Model_Facility は Tx_Extbase_DomainObject_AbstractEntity を拡張します
私の2つのテーブル(列あり):
- 場所
- 郵便番号
- 街
- 施設ID
- 設備
- 施設ID
- 名前
次のように属性をマッピングしました。
私の問題:
私の場所モデルの施設属性はタイプTx_Abc_Domain_Model_Facility
を取得し、LocationRepository を介して場所を探しているときに、施設モデルを含む場所モデルを構築します。
私が行っている検索でいくつかの結果が返されると、問題が発生します。つまり、郵便番号 12345 の場所には 2 つの異なる施設があり (テーブルの場所には異なる facility_id を持つ 2 つの行がある)、2 つの場所モデルを取得し、それぞれが適切な施設モデルを取得することを期待します。
しかし、代わりに、すべて同じ施設モデルを内部に持つ 2 つのロケーション モデルを取得します。彼らは最初に見つけた場所のすべての施設を手に入れました。
施設属性のタイプを整数に変更しても、間違った ID があります。しかし、リポジトリで生のクエリ結果を有効にすると、正しい ID が取得されます。
両方のテーブルに uid 列を追加すると、正しい ID またはモデルも取得されます。
Extbase モデルで uid 列のないテーブルをマップする可能性はありませんか?
ありがとう。
typo3 - Fluid で DateTime を比較する
dateTime オブジェクトを今日の日付と比較したい。
これは私の日付オブジェクトです
日付オブジェクトが当日よりも大きいかどうかを条件にしたい。私は何かをします。
誰でも私を助けることができますか?
typo3 - TYPO3 Extbase/Fluid Viewhelper の問題: 「タグが正しくネストされていません」
私はビューヘルパーを書いたrenderChildren()
... 私には意味をなさないこのエラーが発生します:
テンプレートタグが適切にネストされていません。予想: Tx_Hplusinfo_ViewHelpers_RehaKatViewHelper; 実際: Tx_hplusinfo_ViewHelpers_RehaKatViewHelper
このメッセージにつながるテンプレート部分は次のとおりです。
これはビューヘルパーのレンダリング関数です:
php - Extbase リポジトリで 2 つの QueryResult を組み合わせる
私は TYPO3 をプログラミングしています - ウェブサイトの拡張機能です。Extbase Framework を使用しているので、2 つの SQL クエリを続けて実行するリポジトリ クラス (Tx_Extbase_Persistence_Repository) があります。
$res
1 との両方に$res2
が含まれていTx_Extbase_Persistence_QueryResult
ます。今、結合された結果を返したいのですが、これがどのように行われるのかわかりません。クラスの関数に依存しているため、生の配列を返すことはオプションではありません。QueryResult
また、sql(UNION、JOIN) を結合することも避けたいと考えています。私はすでにこれを試しました:
..しかし、これはエラーをスローします("could not determine the child object type"
)
では、どうすれば 2 つを適切に組み合わせることができるTx_Extbase_Persistence_QueryResult
でしょうか。
編集:
結合とは、2 つの別々の代わりに、 と のQueryResults
両方の結果を含む 1 つだけが必要であることを意味$query1
し$query2
ます。残念ながら、SQL-UNION または JOIN はオプションではありません。
typo3 - TYPO3 TCA 選択、項目配列の NULL 値
extbase と fluid を使って Typo3 4.5 で拡張を行いました。ここでデータを挿入するために、テーブルの TCA を使用していくつかのフォームを作成するバックエンド モジュール 'list' を使用します。選択ボックスをオプションにするために、次のように外部テーブルの前に項目を挿入します。
現在、DB に (NULL が許可された) リレーションがあるため、NULL 値を挿入する必要があります。しかし、このようにうまくいきません。''、""、および 0 も試しましたが、いずれも機能しません。
助けていただければ幸いです。