特定のクラスのいくつかのプロパティが更新されているsymfony2でコンソールコマンドを実行しようとしています。プロパティの 1 つは、次のように、非難可能な動作によって設定されている対応する reviewsBy プロパティを持っています。
/**
* @var bool
* @ORM\Column(name="public_cmt", type="boolean", nullable=true)
*/
private $publicCmt;
/**
* @var User $publicCmtReviewedBy
*
* @Gedmo\Blameable(on="change", field="public_cmt")
* @ORM\ManyToOne(targetEntity="My\Bundle\EntityBundle\Entity\User")
* @ORM\JoinColumn(name="public_cmt_reviewed_by", referencedColumnName="id", nullable=true)
*/
private $publicCmtReviewedBy;
タスクを実行すると、「非難」できるユーザーがいないため、次の例外が発生します。
[Doctrine\ORM\ORMInvalidArgumentException]
EntityManager#persist() expects parameter 1 to be an entity object, NULL given.
ただし、タスクを開始し、プログラムでユーザーを設定しようとするまでにフィルターとして登録されていないため、非難可能を無効にすることもできません。
// create the authentication token
$token = new UsernamePasswordToken(
$user,
null,
'main',
$user->getRoles());
// give it to the security context
$this->getService('security.context')->setToken($token);
動作しません。誰でもアイデアを得ましたか?