問題タブ [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.

0 投票する
2 に答える
1489 参照

orm - Extbase:実行時に遅延読み込みまたは積極的な読み込みを選択します

ドメインオブジェクトBarと1:nの関係にあるドメインオブジェクトFooがあります。

いくつかの基準に一致するすべてのfooを取得する必要がある2つの主要なユースケースがあります。ケースAの場合、私は各fooに接続されているバーを気にしますが、ケースBの場合は気にしません。バーが非常に多いため、常にバーをロードすることは、ケースAのパフォーマンスには適していません。同様に、バーを熱心にロードしないと、ケースBでn +1のなだれが発生します。したがって、どちらも現実を@Lazyとしてタグ付けしません。タグ付けしないことも正しい選択です。

さて、私の質問:クエリ時にextbase永続層に怠惰か熱心かを伝えることは可能ですか?はいの場合、どのように?いいえの場合、Extbaseにn + 1の問題を回避する別の方法がありますか(つまり、必要なすべてのバーをロードしてから、fooを反復処理するときにキャッシュが機能することを期待します)?

もちろん、私の最後の手段は、遅延読み込みを使用してfooを読み込み、2番目のクエリでバーを手動で読み込み、次にリレーションを手動で設定することです。

助言がありますか?

0 投票する
1 に答える
2280 参照

validation - 検証通知から、typo3 のテクニカル検証エラー メッセージを抑制します。

こんにちは、フォームの検証後に素敵なエラー メッセージを取得しようとしています。extbasefluidを使用して、文字列を入力する必要がある名前と電子メール フィールドを持つ単純なエンティティを生成します。私は何も変えませんでした。拡張機能ビルダーから生成されたコードを使用しているだけです。

フィールドを空のままにすると、次の検証エラー通知が表示されます。

2 番目の 2 行は問題ありませんが、最初の行の技術的な通知を取り除くことはできません。これは、ユーザーに表示したいものではありません。

ご協力ありがとうございました!

付録:「フラッシュメッセージ」であることがわかりました。しかし、私は削除したくありませんこれは、「アドレスが正常に保存されました」のように、ユーザーにとって肯定的なフィードバック ソースとしても有益な場合があるためです。

付録:テストするために生成され、使用されたコード:

New.html テンプレート

AddressController.phpコントローラー:

Address.phpモデル:

0 投票する
2 に答える
326 参照

php - Typo3 4.6: ワークスペースに基づいて関連モデルを取得する

2 つのテーブル、2 つのモデル、2 つのリポジトリがあります。

  1. セクション
  2. よくある質問

FAQ はセクションに属します ( 1 つのセクションに多くのFAQ があります)。この関係は、faq にセクション uid を格納することによって行われます。

私のテンプレートでは、私はやっています:

そのセクションによくある質問が表示されます。

これは、通常のユーザーとしてフロントエンドで期待どおりに機能します。

ただし、ドラフトワークスペースでページをプレビューすると. 下書きの FAQ の質問は表示されません。ライブ ワークスペースにある FAQ しか表示されません。ただし、ドラフト ワークスペースのセクションは表示できます。

よくある質問とセクションの関係に問題があります。

ドラフト ワークスペース セクションに FAQ を表示するにはどうすればよいですか?

0 投票する
2 に答える
1772 参照

typo3 - Extbase で依存性注入のバグをデバッグするには?

Extbase (最新バージョン、最新のtyp3) で拡張機能を構築しており、モデルにリポジトリを注入しています。

これは単に機能しません。エラーも手がかりも何もありません。inject* メソッドは単に呼び出されません。まったく同じインジェクションがコントローラーで機能します。

Extbase のモデルにリポジトリを挿入することは可能ですか? 一般に、モデルへのインジェクションは 1.4 以降で可能です。

どうすればこれをデバッグできますか? どこを見ればいいですか?

0 投票する
6 に答える
7232 参照

jquery - TYPO3 extbase - jquery への流体変数

コントローラーから jQuery または JavaScript に流動変数を渡すにはどうすればよいでしょうか?

私のコントローラー内:

fluid 内では変数を {tab} として使用しますが、どうすれば JavaScript に渡すことができますか? どんな助けでも大歓迎です...

0 投票する
2 に答える
6120 参照

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?

0 投票する
1 に答える
1286 参照

php - Extbase で削除された ModelInstance の deleteAction が失敗する

たとえば、削除リンクが 2 回クリックされたか、別のユーザーからクリックされました。最初のクリックでオブジェクトが正しく削除されますが、deleteAction が呼び出される前に 2 回目のクリックで (古いため) 失敗します。どうすればこれを防ぐことができますか?

例外が発生します:

値は「Tx_MyExt_Domain_Model_Download」型でなければなりませんが、「NULL」型でした。

アクション内で何かを行っても、前に失敗するため、役に立ちません…</p>

0 投票する
2 に答える
4328 参照

ajax - TYPO3 Extbase Extension で AJAX 呼び出しを取得するには?

私はこれを行うのに苦労しています.いくつかのマニュアルを探していましたが、うまくいかないようです.

したがって、何らかのイベントによって Fluid View HTML ファイルから AJAX 呼び出しを開始したい場合は、コントローラーでアクションを実行し、値を返す必要があります (現時点ではどの値でも問題ありません。取得できないようですExtbase の AJAX に関しては、ここで機能するものは何でも)。

0 投票する
2 に答える
9243 参照

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

  1. 小さなヘルパーライブラリの場合は、{PackageRoot} / Resources / PHP / {libraryName}に保存し、requireを介して含めることを目的としています。しかし、これは問題によって疑われていますか?
  2. 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()およびオブジェクトマネージャーを介したプロトタイプオブジェクトの作成に関する部分

0 投票する
1 に答える
7334 参照

typo3 - TYPO3 Extbase storagePid

実際の「一般レコードストレージページID」を取得する必要があります。次のスニペットが見つかりましたが、ページにstoragePidが設定されていても、変数は空です。

どんな助けでもいただければ幸いです