$shops = $this->em->getRepository('models\Shop')->findAll();
エンティティで配列を与えますが、配列として配列が必要です。クエリの結果を配列の配列に変換する
エンティティを配列に変換するにはどうすればよいですか?
$shops = $this->em->getRepository('models\Shop')->findAll();
エンティティで配列を与えますが、配列として配列が必要です。クエリの結果を配列の配列に変換する
エンティティを配列に変換するにはどうすればよいですか?
私は同じ問題がありました。 return get_object_vars($this)
は、内部の教義オブジェクト/プロパティも変換するので、良い解決策ではありません。いくつかの研究の結果、このクラスが見つかりました:EntitySerializerあなたのエンティティからクリーンな配列またはJSONを作成し、不要なアイテムを削除します。次のコード:
$patientProfile = $this->em->getRepository('Entities\Patientprofile')->findOneByuserid('2222222');
$entitySerializer=new Bgy\Doctrine\EntitySerializer($this->em);
$patientProfile=$entitySerializer->toArray($patientProfile);
Doctrineでは、クエリを実行するときに水分モードを指定できるため、返される結果のデータ型を変更できます。この場合、Query :: HYDRATE_ARRAYが必要です。リポジトリにあるデフォルトのfindAll()メソッドでこれを指定することはできません。あなた自身のDQLを書く必要があります。
あなたは配列としてentitesの収集が必要な場合:あなたは、配列、例えばとして単一のエンティティが必要な場合は
$query = $em->createQuery('SELECT u FROM User u');
$entites = $query->execute(array(), Query::HYDRATE_ARRAY);
// If you don't have parameters in the query, you can use the getResult() shortcut
$query = $em->createQuery('SELECT u FROM User u');
$entities = $query->getResult(Query::HYDRATE_ARRAY);
を。特定のIDのために:
$query = $em->createQuery('SELECT u FROM User u WHERE u.id = ?1');
$query->setParameter(1, $id);
$entity = $query->getSingleResult(Query::HYDRATE_ARRAY);
これらの方法はQuery、およびAbstractQuery上で定義されています。
しかし、抽象EntityRepository-> findAll()メソッドを使用することは不可能です。 –
*エンティティとしての配列*エンティティの外観はどのように見え、配列はどのように見えますか? – hakre