問題タブ [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.
orm - Extbase:実行時に遅延読み込みまたは積極的な読み込みを選択します
ドメインオブジェクトBarと1:nの関係にあるドメインオブジェクトFooがあります。
いくつかの基準に一致するすべてのfooを取得する必要がある2つの主要なユースケースがあります。ケースAの場合、私は各fooに接続されているバーを気にしますが、ケースBの場合は気にしません。バーが非常に多いため、常にバーをロードすることは、ケースAのパフォーマンスには適していません。同様に、バーを熱心にロードしないと、ケースBでn +1のなだれが発生します。したがって、どちらも現実を@Lazyとしてタグ付けしません。タグ付けしないことも正しい選択です。
さて、私の質問:クエリ時にextbase永続層に怠惰か熱心かを伝えることは可能ですか?はいの場合、どのように?いいえの場合、Extbaseにn + 1の問題を回避する別の方法がありますか(つまり、必要なすべてのバーをロードしてから、fooを反復処理するときにキャッシュが機能することを期待します)?
もちろん、私の最後の手段は、遅延読み込みを使用してfooを読み込み、2番目のクエリでバーを手動で読み込み、次にリレーションを手動で設定することです。
助言がありますか?
validation - 検証通知から、typo3 のテクニカル検証エラー メッセージを抑制します。
こんにちは、フォームの検証後に素敵なエラー メッセージを取得しようとしています。extbaseとfluidを使用して、文字列を入力する必要がある名前と電子メール フィールドを持つ単純なエンティティを生成します。私は何も変えませんでした。拡張機能ビルダーから生成されたコードを使用しているだけです。
フィールドを空のままにすると、次の検証エラー通知が表示されます。
2 番目の 2 行は問題ありませんが、最初の行の技術的な通知を取り除くことはできません。これは、ユーザーに表示したいものではありません。
ご協力ありがとうございました!
付録:「フラッシュメッセージ」であることがわかりました。しかし、私は削除したくありませんこれは、「アドレスが正常に保存されました」のように、ユーザーにとって肯定的なフィードバック ソースとしても有益な場合があるためです。
付録:テストするために生成され、使用されたコード:
New.html テンプレート
AddressController.phpコントローラー:
Address.phpモデル:
php - Typo3 4.6: ワークスペースに基づいて関連モデルを取得する
2 つのテーブル、2 つのモデル、2 つのリポジトリがあります。
- セクション
- よくある質問
FAQ はセクションに属します ( 1 つのセクションに多くのFAQ があります)。この関係は、faq にセクション uid を格納することによって行われます。
私のテンプレートでは、私はやっています:
そのセクションによくある質問が表示されます。
これは、通常のユーザーとしてフロントエンドで期待どおりに機能します。
ただし、ドラフトワークスペースでページをプレビューすると. 下書きの FAQ の質問は表示されません。ライブ ワークスペースにある FAQ しか表示されません。ただし、ドラフト ワークスペースのセクションは表示できます。
よくある質問とセクションの関係に問題があります。
ドラフト ワークスペース セクションに FAQ を表示するにはどうすればよいですか?
typo3 - Extbase で依存性注入のバグをデバッグするには?
Extbase (最新バージョン、最新のtyp3) で拡張機能を構築しており、モデルにリポジトリを注入しています。
これは単に機能しません。エラーも手がかりも何もありません。inject* メソッドは単に呼び出されません。まったく同じインジェクションがコントローラーで機能します。
Extbase のモデルにリポジトリを挿入することは可能ですか? 一般に、モデルへのインジェクションは 1.4 以降で可能です。
どうすればこれをデバッグできますか? どこを見ればいいですか?
jquery - TYPO3 extbase - jquery への流体変数
コントローラーから jQuery または JavaScript に流動変数を渡すにはどうすればよいでしょうか?
私のコントローラー内:
fluid 内では変数を {tab} として使用しますが、どうすれば JavaScript に渡すことができますか? どんな助けでも大歓迎です...
extbase - How do I get an ID after saving an ExtBase Model?
After creating a model and adding it to a repository I want to have the new ID for different purposes (creating a mail, updating other fields outside the Extbase world)
At this point $page hasn't got an ID yet, uid is null.
When does it get it? And how can I retrieve in on runtime?
php - Extbase で削除された ModelInstance の deleteAction が失敗する
たとえば、削除リンクが 2 回クリックされたか、別のユーザーからクリックされました。最初のクリックでオブジェクトが正しく削除されますが、deleteAction が呼び出される前に 2 回目のクリックで (古いため) 失敗します。どうすればこれを防ぐことができますか?
例外が発生します:
値は「Tx_MyExt_Domain_Model_Download」型でなければなりませんが、「NULL」型でした。
アクション内で何かを行っても、前に失敗するため、役に立ちません…</p>
ajax - TYPO3 Extbase Extension で AJAX 呼び出しを取得するには?
私はこれを行うのに苦労しています.いくつかのマニュアルを探していましたが、うまくいかないようです.
したがって、何らかのイベントによって Fluid View HTML ファイルから AJAX 呼び出しを開始したい場合は、コントローラーでアクションを実行し、値を返す必要があります (現時点ではどの値でも問題ありません。取得できないようですExtbase の AJAX に関しては、ここで機能するものは何でも)。
dependency-injection - TYPO3 Extbase Extensionに外部ライブラリを含めるか自動ロードするにはどうすればよいですか?+依存性注入?
私はExtbase1.4でTYPO34.6拡張を開発していて、外部ライブラリを含めようとしています。ライブラリ(私の場合はfacebook PHP SDK )はの下にあり$_EXTKEY/Resources/PHP/facebook-php-sdk/facebook.phpます。ライブラリを自動ロードして、必要な場所に自動的に注入(依存性注入)したいのですが。
私がオンラインで見つけたいくつかのコメントは、require_once()でライブラリを含めるべきであることを示唆しています:
http://forge.typo3.org/issues/33142
- 小さなヘルパーライブラリの場合は、{PackageRoot} / Resources / PHP / {libraryName}に保存し、requireを介して含めることを目的としています。しかし、これは問題によって疑われていますか?
- ImagineまたはSwiftパッケージの場合のように、FLOW3パッケージが主に先行ライブラリを表す場合、ライブラリコードは{PackageRoot}/Classesの下に直接配置されます。」
http://lists.typo3.org/pipermail/typo3-project-typo3v4mvc/2011-July/009946.html
「これを処理するために、特定のアクション内から(require_onceを使用して)クラスを含めます。そうすれば、これらの関数にアクセスでき、クラスがライブラリになります。」
私はこれを試しました、そしてそれはこのように働きます:
しかし、どうすればそれを自動ロードして、injectFacebook関数を使用してライブラリを自動的に挿入できますか?
編集:
自動読み込みについて言及した@alex_schnitzlerと@sorenmallingのように:
@PeterTheOneすべてのファイルをext_autoload.php内に配置してから、DIまたはオブジェクトマネージャーを使用します。
@PeterTheOneは、クラス定義を拡張機能のext_autoload.phpに入れますか?
私はこのように試しました(ファイル:ext_autoload.php):
適切なファイルを見つけて含めるようです。しかし、依存性注入を使用しようとすると(ピーターが答えたように)、エラーが発生します:
コンストラクターの依存関係の正しい情報配列が渡されませんでした!
247行目のファイル/var/syscp/webs/web1/dev/typo3_src-4.5.15/typo3/sysext/extbase/Classes/Object/Container/Container.phpにInvalidArgumentExceptionがスローされました。
これは、Facebookクラスのコンストラクターに必須の$config引数があるためだと思います。
edit2:
私はピーターが彼の答えで言ったことをしました、そして@alex_schnitzlerと@sorenmallingの助けを借りて、私をObjectManagerに向けました、私のFacebookServiceは今このように見えます:
詳細については、以下をお読みください:http: //forge.typo3.org/projects/typo3v4-mvc/wiki/Dependency_Injection_(DI)initializeObject()およびオブジェクトマネージャーを介したプロトタイプオブジェクトの作成に関する部分
typo3 - TYPO3 Extbase storagePid
実際の「一般レコードストレージページID」を取得する必要があります。次のスニペットが見つかりましたが、ページにstoragePidが設定されていても、変数は空です。
どんな助けでもいただければ幸いです