2

特定のクラスのいくつかのプロパティが更新されている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); 

動作しません。誰でもアイデアを得ましたか?

4

3 に答える 3