問題タブ [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.
join - Doctrine 2 テーブル結合 + 追加フィールド
「staff」、「classification」、「staff_classification」という 2 つのテーブルと結合テーブルがあります。結合テーブルには、「showclassification」という追加のブール フィールドがあります。私の注釈は次のとおりです。
- 追加フィールド「showclassifications」を結合テーブルに追加するにはどうすればよいですか?
- DQL 経由でフィールドを参照するにはどうすればよいですか? たとえば、表示が許可されているすべてのスタッフの分類を取得するクエリは何ですか?
- 上記のアノテーションを 1 つのクラスに配置し、@ManyToMany アノテーションを @joinTable なしで別のクラスに配置する必要がありますか? 例 @ManyToMany (targetEntity="Classification")?
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機能と重複する可能性がありますか?
php - doctrine2のphpからdiscriminatorフィールドにアクセスできますか?
私は次のように継承を定義するエンティティを持っています:
フィールド「タイプ」のゲッターを持つことは可能ですか?私はinstanceofを使用できることを知っています(そしてほとんどの場合これが私がやっていることです)が、$ item-> getType()が私の人生をとても楽にしてくれるシナリオはほとんどありません。
php - Doctrine 2プロパティにアクセスするための推奨される方法は何ですか?
Doctrine 2モデルでは、プロパティ/フィールドを公開するべきではないことを読んだことを覚えています。では、これらのフィールドをどのように公開しますか?使用したサンドボックスget*()
とset*()
方法。それが最良のアイデアですか?その非常に面倒です。魔法のメソッド__get()
__set()
を使用すると、フィールドを公開するのと同じようになりますか?
あなたの推薦は何ですか?
datamapper - Doctrine2 のベスト プラクティス、エンティティはサービスを使用する必要がありますか?
しばらく前に同様の質問をしました:データ マッパー パターンを使用して、エンティティ (ドメイン オブジェクト) はマッパーについて知っている必要がありますか? しかし、それは一般的なものであり、具体的に Doctrine2 でいくつかのことを達成する方法に本当に興味があります。
以下は単純なモデルの例です: それぞれThing
がVote
from aUser
を持つことができ、 aUser
は複数のキャストを行うことができますが、最後のカウントVote
のみをキャストすることができます。Vote
他のデータ (Msssage
など) は に関連しているためVote
、2 番目Vote
が配置されると、元のデータVote
を更新するだけでなく、置き換える必要があります。
現在Thing
、この機能があります:
そしてVote
、関係の設定を処理します:
aUser
が最後にVote
カウントされたものだけであることを保証することは、Thing
保証すべきものであり、一部のサービスレイヤーではないように思えます。
したがって、それをモデルに保持するために、新しいThing
関数:
Vote
では、ドメイン モデル内からを削除するにはどうすればよいでしょうか。リラックスVote::setThing()
して受け入れる必要がありNULL
ますか?Thing
投票を削除するために使用できるある種のサービスレイヤーを含める必要がありますか? 投票が蓄積し始めると、それforeach
は遅くなるでしょう - サービス層を使用して、コレクション全体をロードすることなくThing
検索できるようにする必要がありますか?Vote
私は間違いなくライト サービス レイヤーの使用に傾いています。しかし、Doctrine2 でこの種のことを処理するより良い方法はありますか、それとも正しい方向に向かっていますか?
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
。うーん、私が予想したよりも奇妙です。とにかくどうすれば修正できますか?
php - PHPでデータベースを再作成するにはどうすればよいですか(たとえば、ユニットテスト用)
PHP からデータベースを再作成するにはどうすればよいでしょうか。おそらくデフォルト データを挿入します。現在、単体テストの動作を使用する予定です。
Zend_Test
単体テストにDoctrine 2、Zend Framework 1.11を使用しています
CLIを使用できました
または
PHPの代替品を探していますが、これまでのところこれを見つけました
しかし、それは次のようになります
そして、モデルクラスを指定する必要はありません。特に開発中は、変更できる場合があります。以下で指定されたすべてのクラスから読み取る必要があります... CLIと同様に、必要なクラスを指定する必要はありませんか?
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
unit-testing - ユニットテストのドクトリン ORM モデル
これはかなりばかげた質問だと思いますが、既に ORM フレームワークを使用している場合、モデルをテストしますか? テストすることがあまりないことに気付いたとき、私はそれでしたか?私は主にモデルを値に使用しますか? 例えば。ユーザーを追加するため
その後、編集は同様になります
そんな感じ。おそらく追加する唯一の機能は、ユーザーの登録とパスワードの変更で、パスワードのソルティングとユーザー名が利用可能であることの確認を処理することです。
多分別のものはゲッターとセッターですか?ごく些細なこと?どうやってそれをしますか?
ちょうどそのように?
php - Doctrine 2 DQL:名前付きパラメーターを再利用できませんか?
以下のようなことができないことがわかりました。' :user
'が2回使用されていることに注意してください。
エラー「array_combine(): Both parameters should have an equal number of elements
」が表示されます
代わりに以下のようなことをすることで問題を解決できます