画像をアップロードできるように、DoctrinePHPCR と MediaBundle を Symfony にインストールしました。
主な例http://symfony.com/doc/master/cmf/book/database_layer.html は、デフォルト コントローラに「ドキュメント」を保存する方法のみを説明しています。精巧なフォームが添付された Doctrine エンティティをすでにセットアップしていますが、Docrine エンティティ内で MediaBundle から PHPCR に ImageInterface オブジェクトを永続化するにはどうすればよいですか?
ゼロから接続を作成することもできますが、それではすべての接続の詳細を含む YAML 構成ファイルをセットアップするという目的が無効になります。
これは失敗します。Symfony の「get」にアクセスできないようです
$this->get('doctrine_phpcr')->getManager();
これが私のエンティティの外観です。
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Cmf\Bundle\MediaBundle\ImageInterface as ImageInterface;
/**
* Cookie
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="AppBundle\Entity\CookieRepository")
*/
class Cookie
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="image_url", type="string", length=2047)
*/
private $imageUrl;
/**
* Set imageUrl
*
* @param ImageInterface $imageUrl
* @return Cookie
*/
public function setImageUrl( $imageUrl)
{
$this->get('doctrine_phpcr')->getManager();
// The previous line will fail.
$this->imageUrl = $imageUrl;
return $this;
}
/**
* Get imageUrl
*
* @return ImageInterface
*/
public function getImageUrl()
{
return $this->imageUrl;
}
}