4

Symfony2 と Doctrine に Gedmo SoftDeletable フィルターを使用しています ( https://github.com/l3pp4rd/DoctrineExtensions/blob/master/doc/softdeleteable.md )

また、JMSSerializerBundle を使用して、REST API の JSON への応答をシリアル化しています。

会社を「ソフト削除」するとすぐに、エンティティが見つからないという例外がスローされるため、すべての会社を要求する機能が機能しなくなります... JMSSerializerBundle がデータベース内のソフト削除されたエンティティを確実に無視するようにする方法はありますか?

私の all() 関数は次のようになります。

/**
 * All action
 * @return array
 * 
 * @Rest\View
 */
public function allAction()
{
    $em = $this->getDoctrine()->getManager();

    $entities = $em->getRepository('TestCRMBundle:Company')->findAll();

    return array(
        'companies' => $entities,
    );
}
4

2 に答える 2

3

ネストされた関係のため、現在サポートされていません。今のところ、できることはありません。

ただし、SoftDeletable の動作を無効にすることもできます。

/**
 * All action
 * @return array
 * 
 * @Rest\View
 */
public function allAction()
{
    $em = $this->getDoctrine()->getManager();

    $em->getFilters()->disable('softdeletable'); // Disable the filter

    $entities = $em->getRepository('TestCRMBundle:Company')->findAll();

    return array(
        'companies' => $entities,
    );
}

DELETEDエンティティであってもALLが返されることに注意してください。

于 2013-04-14T08:48:10.193 に答える