問題タブ [doctrine]
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.
php - Doctrineコレクションで重複レコードを許可するにはどうすればよいですか
私はそこに何人かの仲間の教義ユーザーがいることを望んでいます。
これが私の関係の単純化されたYAMLです:
コレクションが同じアイテムの多くのコピーを保持できるようにしたいのですが、生成されたクラスを使用して次のようなアイテムをロードすると、次のようになります。
$itemsには私の複製が含まれていません。生成されたSQLは重複した行を正しく返すようです:
代わりに特定のdqlクエリを作成することでこれを回避できることは知っていますが、Itemsコレクションに重複を許可する簡単な設定があるかどうか誰かが知っていますか?
php - PHPレガシープロジェクトにORMを追加するにはどうすればよいですか?
私たちは2年以上開発されているPHPプロジェクトに取り組んでおり、今ではチームは開発をORMに切り替える準備ができていると感じています。これは、開発を本当にスピードアップし、オブジェクトで操作できるようにし、ほとんどの場合、SQLコードやデータベーステーブルの観点から考える必要がないためです。
Doctrine ORMを選択することにしました。これは、YAMLデータフィクスチャがロードされているためです。ユニットテストには非常に必要です。
私が抱えている主な懸念は、新しいORMフレームワークを使用すると、サイトのパフォーマンスが低下する可能性があることです。現在のデータベース抽象化レイヤー(pg_connect
構文を使用し、 PDO互換ではありません)間で共有接続を確立することはできません。PDO_SQLITE構文と互換性のないSQLコードが多数あるため、データベース接続メカニズムをPDO互換に切り替えることはできません。
ですから、私が理解しているように、それを使い始めると、データベース接続の数が2倍になります。データベースサーバーがこれを処理できるかどうかはわかりません。
この状況で私たちに何をすることをお勧めしますか?
php - Symfony-教義の移行に動作を挿入するにはどうすればよいですか?
created_at列とupdated_at列の定義を回避するために、教義の移行に動作(actAs Timestampableなど)を追加することは可能ですか?
前もって感謝します !
php - Doctrine プロファイラーはクエリをキャッチしません
ここで明らかな何かが欠けているに違いないと思います。Doctrine と Zend Framework を一緒にセットアップしました。プロファイラーを使用するためのDoctrineのドキュメントに基づいて、bootstrap.phpファイルには次のものがあります。
エラーはありません。最後にプロファイラーの出力に「合計時間: 0、クエリ数: 0」のみが出力されます。
クエリが実行されるため、接続は確実に機能しています。Doctrine_Query::create() を使用して一連のアイテムをフェッチする SELECT があり、それが execute メソッドです。
php - 教義のテキストフィールドを更新すると例外が発生する
たとえば、次のテキストを含むテキストフィールドがあります:-
「ヨークシャー プディング生地にソーセージを入れた伝統的な英国料理で、通常は野菜と肉汁が添えられます。」
このテキスト フィールドは、ID を使用してアイテム レコードを単純に更新する形式になっています。テキストフィールドの一部を編集して「and gravy.」を置き換えます。「ユーモラス」で。テキストフィールドに含まれるようになりました
「ヨークシャー プディング生地にソーセージを入れた伝統的な英国料理で、通常は野菜とユーモアを添えて出されます。」
次の例外が発生します:-
致命的なエラー: C:\Projects\nitrous\lightweight\system\database\Doctrine\Query\Abstract.php:780 のメッセージ「Unknown component alias humous」を含む例外「Doctrine_Query_Exception」がキャッチされませんでした: C:\Projects\nitrous\lightweight \system\database\Doctrine\Query\Abstract.php(767): Doctrine_Query_Abstract->getQueryComponent('humous') C:\Projects\nitrous\lightweight\system\database\Doctrine\Query\Set.php(58): Doctrine_Query_Abstract ->getAliasDeclaration('humous') C:\Projects\nitrous\lightweight\system\database\Doctrine\Query\Abstract.php(2092): Doctrine_Query_Set->parse('i.details = 'A ...') C :\Projects\nitrous\lightweight\system\database\Doctrine\Query.php(1058): Doctrine_Query_Abstract->_processDqlQueryPart('set', Array) C:\Projects\nitrous\lightweight\system\database\Doctrine\Query\Abstract.php(971): Doctrine_Query->getSqlQuery(Array) C:\Projects\nitrous\lightweight\system\database\Doctrine\Query\Abstract.php( 1030): Doctrine_Query_Abstract->_execute(Array) C:\Projects\nitrous\lightweight\system\appl in C:\Projects\nitrous\lightweight\system\database\Doctrine\Query\Abstract.php 行 780
誰かが興味を持っている場合は、CodeIgniter 1.7.0 にフックされた Doctrine 1.0.6 を使用しています。
実際に更新を実行する私のドクトリンクエリは次のようになります:-
文字列全体を置き換えると、「ヨークシャー プディングのバッターにソーセージを入れた伝統的な英国料理で、通常は野菜とユーモアを添えて提供される」ため、これは奇妙に思えます。「テスト」のような完全に異なるものを使用すると、例外はスローされず、正常に動作します。これは私を困惑させます...これはDoctrineのバグですか、それとも何かを見逃したのでしょうか?
php - なぜ私はSymfony1.2のDoctrineで「バリデーターが失敗した」1つを保存するのですか?
私がそのようなYAMLスキームを持っているとしましょう:
実行する場合:
次のエラーが発生します:
MySQLはorder_idをbigint(20)として保存します。
Ubuntu 9.10、Symfony 1.2、PHP 5、MySQL5を使用しています。
編集 :
ヒントを得ました。YAMLファイルのサイズに関するすべての言及を削除すると、order_id(lenght)の2番目のバリデーターエラーが発生します:-)
php - フィクスチャは他のフィクスチャからアイテムを「コピー」できますか?
ACLフィクスチャにはリソースとアクションがあり、ほとんどのリソースはCRUDのような共通のアクションを共有していますが、Doctrine(yaml)に別の要素を拡張する方法はありますか?
これが私の現在のyamlからの宣伝文です:
たとえば、「ニュース記事」と呼ばれる、A1をA4に継承し、独自のアクションを含む新しいリソースを使用してR1を拡張するにはどうすればよいですか。
doctrine - Doctrine で生成されたモデルに接頭辞を付けることはできますか?
Doctrineによって生成されたクラスのプレフィックスを指定するDoctrineのオプションはありますか?
新しい Zend オートローダとオートローディング モデルに問題があります。教義のオートローダも役に立ちません。
理想的には、「Model_User」のように、「Model_」で始まる教義生成クラスを用意します。
generate-migrations-diff を使用して移行を生成しようとしているときにこの問題に遭遇しました。致命的なエラー: 38 行目の /tmp/fromprfx_doctrine_tmp_dirs/generated/BaseUser.php でクラス BaseUser を再宣言できません。
実際のモデルは、新しく生成されたクラスの前にロードされるためです。
php - Doctrine_Record::save() をオーバーライドすると、Symfony 1.2 で厳密な標準エラーが発生するのはなぜですか?
私は次のモデルを持っています:
Doctrine_Record::save()署名の API の説明に従っているような気がします(奇妙な括弧を除いて、構文エラーが発生します...)。
このコードを実行すると問題なく動作します が、次の警告が表示されます。
私は通常、エラー報告を ERROR_ALL に変更し、警告のないコードを使用するようにしています。これは気になります。Doctrine のすべてのソース コードをチェックアウトし、"save(" を検索して、署名を次から次へと試しました。
php - Doctrine を Zend Framework 1.8 アプリと統合する
私が書いている新しい Zend Framework アプリの ORM として Doctrine を使用することに興味があります。できるだけ簡単に統合するための最良の方法を見つけようとしています。私が見つけたすべての例は異なっており、それらの多くは ZF 1.8 の新しいオートローディング機能よりも前のものです。それらのどれもまだ私のために働いていません。
誰かがこれを行う良い方法を持っていますか? 私はこれをブートストラップ ファイルに入れたいと思っていますが、Zend_Application_Resource プラグインを作成することを提案する人もいます。難しい部分は、Doctrine 名前空間と、デフォルトで Zend の自動読み込み規則に従わないモデル クラスの両方で正しく機能するロード パスを取得することです。
何かご意見は?ありがとう。