問題タブ [propel]
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.
database - この推進エラーの原因は何ですか?
アプリを実行すると、propel で次のエラーが発生します。
考えられることはすべて試しましたが、何が問題を引き起こしているのかわかりません。
私のbuild.propertiesは次のとおりです。
そして、私の runtime-conf.xml は次のとおりです。
php - データベースのエラー処理: 外部サービスを呼び出す必要があり、トランザクションが失敗した場合は?
次のような形式で、(適切な ORM の有無にかかわらず) トランザクションでデータベース呼び出しをいつでもラップできることは誰もが知っています。
この方法により、トランザクションが失敗した場合に、データベースが正しい状態に復元されることが保証されます。
しかし、問題は、トランザクションを実行するときに、そのトランザクションに加えて、別のデータベースを更新する必要があるとしましょう (たとえば、databaseA の列のエントリを更新する場合、databaseB の列の別のエントリを更新する必要があります)。更新しました)。このケースをどのように処理しますか?
たとえば、これが私のコードで、更新が必要な 3 つのデータベース (dbA、dbB、dbc) があるとします。
dbc が失敗した場合、dbA はロールバックできますが、dbb はロールバックできません。
この問題はデータベースに依存しないはずだと思います。また、私は ORM を使用しているため、これも ORM に依存しない必要があります。
更新: データベース トランザクションの一部は ORM でラップされており、一部はネイキッド PDO、oledb (またはデータベース呼び出しを提供する最低限の言語) を使用しています。したがって、私の解決策はこれを処理する必要があります。
何か案が?
symfony1 - symfony でのリバースエンジニアリング
私はデータベースを持っています。symfony を使用して schema.yml を作成するリバース エンジニアリングを試みています。次のエラー メッセージが表示されます。
[propel-schema-reverse] メタデータから XML を作成中にエラーが発生しました: SQLSTATE[HY000]: 一般エラー: 2030 このコマンドは、準備済みステートメント プロトコルではまだサポートされていません
Creole を使用して schema.xml を生成できますが、後で別の問題が発生します。
未定義のテーブル m_country の TableMat を取得できません。ピア スタブ クラス定義の後に静的な MapBuilder 登録コードがあることを確認してください。
これは、いくつかのマスター データをテーブル m_country に追加しようとしたときに発生します。これは、すべてのテーブルで発生します。
誰かが何か指針を与えることができますか?前もって感謝します。
symfony1 - symfony で propel select によって生成された SQL を出力する方法はありますか?
テスト目的で、symfony の propel select によって生成されたクエリを出力したいと考えています。これを行う方法はありますか?sf_debug バーを使用できることはわかっていますが、sf_debug バーがまだロードされていないか、まったくロードされない状況でステートメントを確認する必要がある場合があります。
symfony1 - バランスの取れたツリーを作成する NestedSet を推進する
Propel の NestedSet 機能を使用しようとしています。ただし、ツリーが作成されたときにバランスが取れているように挿入することについて何かが欠けています(つまり、水平に塗りつぶします)。
次の要素があるとします。
r2c3 を r1c2 の最初の子として挿入したい (つまり、行 3 から開始する前に行 2 を埋める)。
これに対する私の最初の試みは、この関数を作成することでした:
ただし、これにより、必要に応じて r1c2 ではなく、r2c1 に子が挿入されます。
どういうわけか、次の利用可能な場所でエントリをツリーに挿入する方法はありますか?
ティア・マイク
php - Loader.phpはDoctrineクラスを読み込もうとしていますが、Propelを使用しています!
次の500エラーが発生するケースを見つけています。
ここで、xyz ==
Memcache(コマンドラインでsymfony ccを使用しようとする場合)
また
sfDoctrineAdminGenerator(古いAdminGeneratorで生成されたCMSページを使用する場合)。
Propelを使用していますが、Loader.phpはDoctrineでのみ使用されるクラスを読み込もうとしています。
現在、私は不正なハックを使用しており、Loader.phpに、ファイルがこれら2つのケースのいずれかであるかどうかを確認し、そうである場合は、ロードしようとするのではなく、単に戻るように要求しています。明らかに、これは容認できない長期的なものです。
誰かがこれに遭遇しましたか、そしてどのようにそれを解決しましたか?
追加するために編集:
我々は持っています:
そして、最上位のconfigディレクトリにpropel.iniファイルがあります。これは過去4週間ほどで始まったばかりで、1年以上安定したビルドができました。Doctrineは完全に無効になっていると確信しています。
forms - sfWidgetFormFilterDate ウィジェットのデフォルト値を設定する方法はありますか?
/lib/filter/base/ フォルダーに自動生成された BaseBlahBlahBlahFilter.class ファイルがあります。「データ」タイプ フィールドの次の行が含まれています。
フォームが読み込まれると、すべての月/日/年のドロップダウンに空の値が表示されます。そのドロップダウンにデフォルト値 (今日の日付など) を設定する方法はありますか?
php - propel-symfony の継承コンテキストでのオブジェクトの選択に関する問題
symfony 1.2 と propel で非常に厄介な問題があります。
単一テーブル戦略を使用して継承を実装したモデルがあります。したがって、ここに私のモデルの抜粋があります:
Ad (id, posted_date, description) 次に、RealEstateAd(location, price, transaction_type) と JobAd(position, requirements, company) で、Ad から両方を継承します。
すべての広告を表示したいのですが、RealEstateAd は JobAd とは異なる方法で表示したいと考えています。これを実現するために、RealEstateAd のパーシャルと JobAd のパーシャルを使用しました。
そのため、アクションでは次のようにしました。
テンプレートで、各オブジェクトのクラスを確認します。
問題は、$allAds 配列内のオブジェクトのクラスが sfOutputEscaperObjectDecorator であることです。そのため、何も表示されません。
どうすればこの問題に対処できますか? 実際に RealEstateAd または JobAd クラスのオブジェクトを含む配列を取得する方法はありますか? ここでの水和プロセスはどのように行われますか?
php - 複数のデータベース スキーマを作成するために Symfony をセットアップするにはどうすればよいですか?
私のプロジェクトには 2 つのデータベースがあります。propel-build-model はすでに 2 つのデータベースで動作するように設定されています - Symfony での複数データベースのサポート
いずれかのデータベースに変更を加えた場合、propel-build-schema コマンドを使用して両方のスキーマを再構築する必要があります。
スキーマごとに設定を修正することで手動でこれを行うことができますが、同時に両方を作成することは可能ですか? もしそうなら、どうすれば propel.ini ファイルを調整して両方の接続を持つことができますか?
現在Symfony 1.0を使用しています
symfony1 - symfony 1.4 を Doctrine から Propel に切り替えます
新しくインストールされた Symfony 1.4 フレームワークを Doctrine (デフォルトで設定されている) から Propel に適切に切り替えるにはどうすればよいですか?