タグ付けされた質問 「doctrine-orm」

Doctrine ORMはPHP ORMです。Doctrine 1.2はActive Recordパターンを使用しますが、Doctrine ORM 2以降はData Mapperパターンを使用します。Doctrineプロジェクトは、データベースの抽象化とPHPで書かれたオブジェクトリレーショナルマッピングを処理するためのオープンソースライブラリとツールのコレクションです。

12
ファイルシステムでクラスを移動した後の「クラスXXXは有効なエンティティまたはマップされたスーパークラスではありません」
Aib \ PlatformBundle \ Entity \ User.phpにエンティティクラスがありました 私はフォームクラスを作成しようとして問題はありませんでした php app / console doctrine:generate:form AibPlatformBundle:User 名前空間をAib \ PlatformBundle \ Entity \ Identity \ Userに変更しましたが、タスクでフォームを生成しようとすると、次のように言っています。 「クラスAib \ PlatformBundle \ Entity \ Userは有効なエンティティまたはマップされたスーパークラスではありません。」 これはファイルの内容です: <?php namespace Aib\PlatformBundle\Entity\Identity; use Doctrine\ORM\Mapping as ORM; /** * Aib\PlatformBundle\Entity\Identity\User * * @ORM\Table() * @ORM\Entity(repositoryClass="Aib\PlatformBundle\Entity\Identity \UserRepository") */ class User …

12
Symfony 2.0 AJAXアプリケーションでDoctrineエンティティをJSONにエンコードする方法は?
ゲームアプリを開発していて、Symfony 2.0を使用しています。バックエンドへのAJAXリクエストがたくさんあります。そして、より多くの応答がエンティティをJSONに変換しています。例えば: class DefaultController extends Controller { public function launchAction() { $user = $this->getDoctrine() ->getRepository('UserBundle:User') ->find($id); // encode user to json format $userDataAsJson = $this->encodeUserDataToJson($user); return array( 'userDataAsJson' => $userDataAsJson ); } private function encodeUserDataToJson(User $user) { $userData = array( 'id' => $user->getId(), 'profile' => array( 'nickname' => $user->getProfile()->getNickname() ) …

2
Doctrine2および追加フィールドを備えた多対多リンクテーブル
(私の一貫性のない質問については申し訳ありません:私はこの投稿を書いているときにいくつかの質問に答えようとしましたが、ここにあります:) リンクテーブル内に多対多の関係を持つデータベースモデルを作成しようとしていますが、リンクごとの値(この場合は在庫管理テーブル)もあります。(これは私が抱えているより多くの問題の基本的な例ですが、続行する前にこれでテストしたいと思いました)。 私が使用してきましたexportmwbをこの単純な例のために2つのエンティティストアや製品を生成するために、両方の下に表示されます。 ただし、現在の問題は、Doctrineを使用してstock.amount値(負の値になる可能性があるため、signed int)にアクセスする方法がわからないことです。また、doctrineのorm:schema-tool:create関数を使用してテーブルを作成しようとすると 多対多の関係はエンティティ自体ではないため、ProductとStoreのみをエンティティとして持つことができるため、これにより、2つのエンティティと3つのテーブル(1つは値のないリンクテーブル、2つのデータテーブル)のみが生成されました。 そこで、論理的には、データベースモデルを変更して、在庫をストアと製品の関係を持つ別個のテーブルとして持つようにしました。また、問題の原因として除外できるように、フィールド名を書き直しました。 それから私が見つけたのは、まだStockエンティティを取得していないことでした...そしてデータベース自体には「amount」フィールドがありませんでした。 私は本当にこれらの店舗と商品を在庫テーブルにまとめることができる必要がありました(とりわけ)...したがって、商品自体に在庫を追加することはオプションではありません。 root@hdev:/var/www/test/library# php doctrine.php orm:info Found 2 mapped entities: [OK] Entity\Product [OK] Entity\Store また、データベースを作成しても、ストックテーブルに適切なフィールドが表示されません。 そこで、ここでいくつか調べてみると、多対多の接続はエンティティではないため、値を持つことができないことがわかりました。そこで、他のテーブルとの関係を持つ別のテーブルに変更しようとしましたが、それでも機能しませんでした。 私はここで何が間違っているのですか?

17
EntityManagerが閉じています
[Doctrine\ORM\ORMException] The EntityManager is closed. データの挿入時にDBAL例外が発生した後、EntityManagerが閉じて、再接続できません。 このように試しましたが、接続できませんでした。 $this->em->close(); $this->set('doctrine.orm.entity_manager', null); $this->set('doctrine.orm.default_entity_manager', null); $this->get('doctrine')->resetEntityManager(); $this->em = $this->get('doctrine')->getEntityManager(); 誰かが再接続する方法を考えていますか?

8
2つのphpDoctrine 2 ArrayCollection()をマージする方法
2つの教義を連結できる便利な方法はありますArrayCollection()か?何かのようなもの: $collection1 = new ArrayCollection(); $collection2 = new ArrayCollection(); $collection1->add($obj1); $collection1->add($obj2); $collection1->add($obj3); $collection2->add($obj4); $collection2->add($obj5); $collection2->add($obj6); $collection1->concat($collection2); // $collection1 now contains {$obj1, $obj2, $obj3, $obj4, $obj5, $obj6 } 2番目のコレクションを繰り返し、各要素を1番目のコレクションに1つずつ追加する手間を省くことができるかどうかを知りたいだけです。 ありがとう!

11
Doctrine2エンティティの変更/更新されたすべてのフィールドを取得する組み込みの方法はありますか
エンティティを取得し、$eセッターでその状態を変更するとします。 $e->setFoo('a'); $e->setBar('b'); 変更されたフィールドの配列を取得する可能性はありますか? 私の例の場合foo => a, bar => b、結果として取得したい PS:はい、すべてのアクセサーを変更してこの機能を手動で実装できることはわかっていますが、これを行うための便利な方法を探しています

1
非推奨:番号を認識させないDoctrine \ ORM \ Mapping \ UnderscoreNamingStrategyは非推奨です
私はSymfony 4.3.8を使用していますが、これらの非推奨に関する情報が見つかりません。 ユーザー非推奨:番号を認識させずにDoctrine \ ORM \ Mapping \ UnderscoreNamingStrategyを作成することは非推奨であり、Doctrine ORM 3.0で削除されます。 番号を認識させずにDoctrine \ ORM \ Mapping \ UnderscoreNamingStrategyを作成することは非推奨であり、Doctrine ORM 3.0で削除されます。 私はスタックトレースで検索し、これを見つけました: class UnderscoreNamingStrategy implements NamingStrategy { private const DEFAULT_PATTERN = '/(?<=[a-z])([A-Z])/'; private const NUMBER_AWARE_PATTERN = '/(?<=[a-z0-9])([A-Z])/'; /** * Underscore naming strategy construct. * * @param int $case CASE_LOWER | CASE_UPPER …

2
プロパティタイプのヒントを導入すると、「初期化前に型付きプロパティにアクセスしてはならない」というエラーが突然表示されるのはなぜですか?
次のように、新しく導入されたプロパティタイプのヒントを利用するようにクラス定義を更新しました。 class Foo { private int $id; private ?string $val; private DateTimeInterface $createdAt; private ?DateTimeInterface $updatedAt; public function __construct(int $id) { $this->id = $id; } public function getId(): int { return $this->id; } public function getVal(): ?string { return $this->val; } public function getCreatedAt(): ?DateTimeInterface { return $this->createdAt; } public …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.