私はサーバーから家のいくつかの画像を表示する必要があるモバイルアプリに取り組んでいます。バックエンド用にSymfony2、FOSRestBundle、Sonata Media Bundleをインストールしました。FOSRestBundleで使用するために、ソナタのメディアバンドルのギャラリーからイメージURLを取得するにはどうすればいいですか?
ハウス画像のURLを取得するために、ギャラリーフィールドを持つPropertyという名前のエンティティに対してFOSRestBundleを設定しました。これは、RESTコントローラ
class PropertiesController extends FOSRestController
{
public function getPropertiesAction()
{
$response = $this->getDoctrine()->getRepository('ComissionBundle:Property')->findAll();
if ($response == null){
return "No properties";
}
else{
return $response;
}
}
}
ですが、私はこれを取得する:あなたが見ることができるように
[
{
"id":2,
"name":"test",
"city":"test",
"address":"test",
"sector":"test",
"area":0,
"rooms":112343,
"price":0,
"gallery":{
"context":"default",
"name":"test",
"enabled":false,
"updated_at":"2016-08-26T17:18:51+0200",
"created_at":"2016-08-26T17:18:51+0200",
"default_format":"default_small",
"id":1
}
}
]
、何のメディアオブジェクトが存在しません。
そして、Iカスタマイズリポジトリ方法で試みた:
class PropertyRepository extends EntityRepository
{
public function findMainInfoElements($elements)
{
$em = $this->getEntityManager();
$queryText = "SELECT u, g, h FROM ComissionBundle:Property u JOIN u.gallery g JOIN g.galleryHasMedias h";
$query = $em->createQuery($queryText);
return $query->setMaxResults($elements)->getResult();
}
}
が、結果は同じです。
ギャラリーからURLを取得してモバイルアプリに表示するにはどうすればよいですか? (特にSonata Media Bundleが生成するサム画像は、アプリケーションのパフォーマンスに優れています)