問題タブ [doctrine-extensions]
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.
symfony - 新しい Doctrine イベント サブスクライバー (SoftDeleteable) を登録するときの symfony 例外
Symfony 2.3 を Sonata Admin Bundle with DoctrineExtensions ( StofDoctrineExtensionsBundleで有効化) で使用しています。SoftDeleteable および Timestampable コンポーネントを有効にして構成し、正常にテストしました。
ここで、Symfony タグ付きサービスを使用して別の Doctrine イベント サブスクライバーを追加しようとすると、softdeleteable リスナーが無効になっているように見えます。
私のサービス:
加入者:
各リクエストで例外が発生します:
サブスクライバーを無効にすると、問題はなくなります。イベント サブスクライバーを有効にして、softdeleteable も使用するにはどうすればよいですか?
symfony - generateUrl は childrenHierarchy では機能しません
ドクトリン拡張ツリーで generateUrl を使用する
活動中
エラー:
FatalErrorException: エラー: オブジェクト コンテキストではないときに $this を使用する
symfony - Symfony の Doctrine アップロード可能な拡張機能
doctrine のアップロード可能な拡張機能がどのように機能するかを理解し、Symfony プロジェクトで使用できるようにするために、このドキュメントを読みました。
問題は、オブジェクトが呼び出されているのを見て、$listener
それがどこから来たのか本当にわからない使用例にあります。
コントローラーの 1 つで同様のコードを使用するつもりですが、そのリスナーをインスタンス化する方法や、どこから取得するかがわかりません。
php - DoctrineExtensions、エンティティは現在のロケールで翻訳されていますか?
エンティティを翻訳するために DoctrineExtensions を使用しています。それは本当にうまく動作しますが、この問題を解決する方法がわかりません:
DB クエリを減らすために、翻訳フォールバック、個人的な翻訳、ORM クエリ ヒントを使用します。翻訳が存在しない場合は、デフォルト値にフォールバックします。ここまでは、問題ありません。
しかし (これは私の質問です)、エンティティがデフォルト値に戻ったことをどのように知ることができますか? つまり、エンティティに翻訳がない場合、それを確認する方法はありますか?
たとえば、翻訳がないときはいつでもこのエンティティを何らかの形で処理したい場合。何かのようなもの :
もちろん、簡単にするために、すべてのフィールドが翻訳されているかどうかを考慮します。
私は十分に明確であったことを願っています。
ありがとう
forms - Gedmo TreeSlugHandler を使用したスラッグの編集
Symfony 2 の Gedmo Tree Doctrine 拡張機能を使用して階層化されたエンティティがあります。Category エンティティのコードは次のとおりです。
というタイトルのカテゴリと というタイトルのBands
サブカテゴリがあるRock
場合、後者のカテゴリは作成時に のスラッグを持ちbands/rock
ます。これは期待どおりに機能します。
ただし、スラッグ フィールドをフォームに追加すると、エンティティを編集すると、最初にbands/rock
フォーム フィールドに追加されます。これを変更しbands/rock-and-roll
てフォームを送信すると、スラッグが更新され、期待どおりにはbands/bands-rock-and-roll
なりませんbands/rock-and-roll
。
カテゴリを編集してスラッグ フィールドを に設定しrock-and-roll
、フォームを送信すると、スラッグが に更新されbands/rock-and-roll
ます。スラッグはrock-and-roll
更新後になると思います。
この動作を修正するにはどうすればよいですか? 基本的に、スラッグが提供されていない場合はハンドラーで自動生成されますが、提供されている場合は提供したものに正確に設定されます。
ありがとう
forms - Symfony2: A2lixTranslationFormBundle と Gedmo\DoctrineExtensions Translatable を使用して翻訳フォームをレンダリングする際の問題
私はエンティティを翻訳するためにgedmo/doctrine-translations
とを使用しています。a2lix/translation-form-bundle: 2.*@dev
翻訳フォームは常にフィールドとコンテンツをレンダリングしますが、エンティティ自体にはフィールドまたはコンテンツフィールドが含まれていません。
フォームタイプ
doctrine-orm - Doctrine から年の接頭辞を付けたスラッグを自動生成する
Symfony 2.4 アプリケーションで Doctrine からスラッグを自動生成したいと考えています。このスラッグは、レコードが作成された年に基づいて一意です。DoctrineExtensions を使用しています。
私のブログの記録では、ルートを/blog/{year}/{slug}
だから私はこれらの2つのレコードを持っているとしましょう
id: 1
title: My Blog Title
createdAt: 2013-08-14 18:48:21
id: 2
title: My Blog Title
createdAt: 2014-02-01 17:12:10
my-blog-title
createdAt に基づく一意のレコードであるため、両方のスラッグを にしたい
したがって、私の2つのルートは次のようになります
/blog/2013/my-blog-title
/blog/2014/my-blog-title
ただし、これを機能させることができないようです:
これが私のorm.ymlの関連部分です
fields:
title:
type: text
slug:
type: text
gedmo:
slug:
unique_base: createdAt
fields:
- title
createdAt:
type: datetime
gedmo:
timestampable:
on: create
これは、createdAt がすべてのレコードに対して一意であるため、私のレコードのいずれか 2 つがまったく同じ作成日を持つことはほとんど不可能であるため、機能します。
したがって、3 番目のレコードを追加すると:
id: 3
title: My Blog Title
createdAt: 2014-03-02 17:12:10
同じスラッグを使用できます-my-blog-title
私のorm.ymlファイルで、次のようなことができるようにしたい
unique_base: createdAt("Y")
そのため、作成した日付の年のみがベースとして使用されるため、レコードが異なる年にある場合は同じスラッグを持つことができますが、レコードが同じ年にある場合は同じスラッグを持つことはできません。
ナメクジ自体に日付を取り込むことができることを知っています
2014-my-blog-title
しかし、それは次のように見える必要があります2014/my-blog-title
誰かがこれを手伝ってくれませんか?
どうもありがとう!!!
symfony - カスタム マッピング タイプで Sluggable を使用するには?
Symfony2 プロジェクトでは、この StackOverflow questionで提案されているように、データベース内の文字列を暗号化するためにカスタム マッピング フィールドを作成しました。Gedmo\Sluggable Doctrine 拡張機能を使用して、データベース フィールドの 1 つをスラッグ化したいと考えています。しかし、「encrypted_string」は許可されたタイプではないため、明らかに次のエラーメッセージが表示されます。
[Gedmo\Exception\InvalidMappingException]
フィールドを使用できません - [username] はスラッグ ストレージに使用できません。タイプは無効であり
、クラスの「文字列」または「テキスト」である必要があります - My\PrivateApplication\Bundle\UserBundle
\Entity\User
--編集-- これは私のエンティティです:
クラス Gedmo\Sluggable\Mapping\Driver\Annotation のプロパティ $validTypes は、sluggable の有効な型を定義しているようです。新しいカスタム タイプを使用するように SluggableListener を変更するにはどうすればよいですか?
どうもありがとうございました。