問題タブ [doctrine-orm]

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 投票する
1 に答える
8808 参照

join - Doctrine 2 テーブル結合 + 追加フィールド

「staff」、「classification」、「staff_classification」という 2 つのテーブルと結合テーブルがあります。結合テーブルには、「showclassification」という追加のブール フィールドがあります。私の注釈は次のとおりです。

  1. 追加フィールド「showclassifications」を結合テーブルに追加するにはどうすればよいですか?
  2. DQL 経由でフィールドを参照するにはどうすればよいですか? たとえば、表示が許可されているすべてのスタッフの分類を取得するクエリは何ですか?
  3. 上記のアノテーションを 1 つのクラスに配置し、@ManyToMany アノテーションを @joinTable なしで別のクラスに配置する必要がありますか? 例 @ManyToMany (targetEntity="Classification")?
0 投票する
0 に答える
1076 参照

php - Doctrine2統合の問題

問題:

私はMVCパターンを使用してプロジェクトを開発しています。モデルを構築するために、Doctrine2RC2を使用することにしました。

ビューとコントローラーを実装するには、ZendFramework1.11を使用します。

モデルを開発している間、私はそれをテストしました。そして、モデルは正常に動作します。Doctrine2コンソールツールを使用して、データベースにすべてのテーブルを作成し、モデルエンティティを非常に簡単に操作しました。そして、次のステップであるZendFrameworkへの統合Doctrineに移りました。

統合を終了すると、次のエラーメッセージが表示されました:「キャッチされない例外'Doctrine \ ORM \ Mapping \ MappingException' with message'Class Entities \ Tourism is not a valid entity or mappedsuperclass 。'」

それは私のせいだと思いました。それから私は同じすぐに使えるパッケージを見つけることにしましたこれがそれです。私はそれが箱からうまくいくはずだと思ったが、それは起こらなかった。ダウンロードしたパッケージに同じエラーメッセージが表示されました:「クラスApplication_Model_Articleは有効なエンティティまたはマップされたスーパークラスではありません。

今、私は問題が私の環境にあると思っています。しかし、それを機能させるために何を変更する必要がありますか?誰か助けてもらえますか?

私の環境:OS:Mac OS X 10.6.5 PHP:5.3.3(Macportsにインストール)Apache:2.2(Macportsにインストール)

何が悪いのか教えてください。ZendFrameworkはいくつかのDoctrine機能と重複する可能性がありますか?

0 投票する
8 に答える
19760 参照

php - doctrine2のphpからdiscriminatorフィールドにアクセスできますか?

私は次のように継承を定義するエンティティを持っています:

フィールド「タイプ」のゲッターを持つことは可能ですか?私はinstanceofを使用できることを知っています(そしてほとんどの場合これが私がやっていることです)が、$ item-> getType()が私の人生をとても楽にしてくれるシナリオはほとんどありません。

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

php - Doctrine 2プロパティにアクセスするための推奨される方法は何ですか?

Doctrine 2モデルでは、プロパティ/フィールドを公開するべきではないことを読んだことを覚えています。では、これらのフィールドをどのように公開しますか?使用したサンドボックスget*()set*()方法。それが最良のアイデアですか?その非常に面倒です。魔法のメソッド__get() __set()を使用すると、フィールドを公開するのと同じようになりますか?

あなたの推薦は何ですか?

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

datamapper - Doctrine2 のベスト プラクティス、エンティティはサービスを使用する必要がありますか?

しばらく前に同様の質問をしました:データ マッパー パターンを使用して、エンティティ (ドメイン オブジェクト) はマッパーについて知っている必要がありますか? しかし、それは一般的なものであり、具体的に Doctrine2 でいくつかのことを達成する方法に本当に興味があります

以下は単純なモデルの例です: それぞれThingVotefrom aUserを持つことができ、 aUserは複数のキャストを行うことができますが、最後のカウントVoteのみをキャストすることができます。Vote他のデータ (Msssageなど) は に関連しているためVote、2 番目Voteが配置されると、元のデータVoteを更新するだけでなく、置き換える必要があります。

現在Thing、この機能があります:

そしてVote、関係の設定を処理します:

aUserが最後にVoteカウントされたものだけであることを保証することは、Thing保証すべきものであり、一部のサービスレイヤーではないように思えます。

したがって、それをモデルに保持するために、新しいThing関数:

Voteでは、ドメイン モデル内からを削除するにはどうすればよいでしょうか。リラックスVote::setThing()して受け入れる必要がありNULLますか?Thing投票を削除するために使用できるある種のサービスレイヤーを含める必要がありますか? 投票が蓄積し始めると、それforeachは遅くなるでしょう - サービス層を使用して、コレクション全体をロードすることなくThing検索できるようにする必要がありますか?Vote

私は間違いなくライト サービス レイヤーの使用に傾いています。しかし、Doctrine2 でこの種のことを処理するより良い方法はありますか、それとも正しい方向に向かっていますか?

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

zend-framework - Zend Framework 1.11 + Doctrine 2 統合: モデルのオートロード models/user.php -> Model\User

次のようなディレクトリ構造を持つことができるように自動ロードを設定するにはどうすればよいですか

Zend/Doctrine Autoloader load を持っていますApplication\Model\User。注意 モデルが特異です。

現在、次のようにオートローダーをセットアップしています(Bootstrap.php _initDoctrine()

現在、 を使用しようとするとApplication\Model\User

require(D:\Projects\Tickle\application\models\Application\Model\User.php): failed to open stream: No such file or directory

を含めようとしていますapplication\models\Application\Model\User.php。うーん、私が予想したよりも奇妙です。とにかくどうすれば修正できますか?

0 投票する
3 に答える
1379 参照

php - PHPでデータベースを再作成するにはどうすればよいですか(たとえば、ユニットテスト用)

PHP からデータベースを再作成するにはどうすればよいでしょうか。おそらくデフォルト データを挿入します。現在、単体テストの動作を使用する予定です。

Zend_Test単体テストにDoctrine 2、Zend Framework 1.11を使用しています

CLIを使用できました

または

PHPの代替品を探していますが、これまでのところこれを見つけまし

しかし、それは次のようになります

そして、モデルクラスを指定する必要はありません。特に開発中は、変更できる場合があります。以下で指定されたすべてのクラスから読み取る必要があります... CLIと同様に、必要なクラスを指定する必要はありませんか?

0 投票する
3 に答える
2779 参照

zend-framework - PHPUnit/Zend_Test: PDOException: PDO インスタンスをシリアライズまたはアンシリアライズできません

例外が発生しています

PDOException: You cannot serialize or unserialize PDO instances

単体テストに PHPUnit を使用しようとしているとき。私はあまり進んでいません。Zend Framework 1.11 を使用しています。Zend_Registry にエンティティ マネージャを格納するアプリケーションをブートストラップしたのではないでしょうか?

私の単体テストでは、次のようになります

私の phpunit.xml はhttp://pastebin.com/BCv2Ci8Rのように見えます。主な関心領域は 1 行目だと思います。つまり、bootstrap.php はhttp://pastebin.com/hVZhJAG1のようになります。

アップデート

行があるときに問題が発生することがわかりました

bootstrap.php でhttp://pastebin.com/hVZhJAG1

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

unit-testing - ユニットテストのドクトリン ORM モデル

これはかなりばかげた質問だと思いますが、既に ORM フレームワークを使用している場合、モデルをテストしますか? テストすることがあまりないことに気付いたとき、私はそれでしたか?私は主にモデルを値に使用しますか? 例えば。ユーザーを追加するため

その後、編集は同様になります

そんな感じ。おそらく追加する唯一の機能は、ユーザーの登録とパスワードの変更で、パスワードのソルティングとユーザー名が利用可能であることの確認を処理することです。

多分別のものはゲッターとセッターですか?ごく些細なこと?どうやってそれをしますか?

ちょうどそのように?

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

php - Doctrine 2 DQL:名前付きパラメーターを再利用できませんか?

以下のようなことができないことがわかりました。' :user'が2回使用されていることに注意してください。

エラー「array_combine(): Both parameters should have an equal number of elements」が表示されます

代わりに以下のようなことをすることで問題を解決できます