到期后从数据库中删除错误

时间:2017-02-18 22:02:16

标签: php database symfony doctrine

在我的数据库中,我有许多具有datecreated属性的产品。 我想在刷新主页后花费一些时间(例如10天或20天)删除任何产品。

这是我的控制者:

public function indexAction()
{
    $datenow = new \DateTimeImmutable();
    $datenowStringType = $datenow->format('Y-m-d');

    $em = $this->getDoctrine()->getManager();
    $products = $em->getRepository('ProductBundle:Product')->findAll();

    foreach ($products as $produit) {
        $CreatedDate = $produit->getCreatedDate();
        $CreatedDate_StringType = $CreatedDate->format('Y-m-d');

        $duree = '+'.$produit->getDuree();
        $date_fin_duree = date('Y-m-d', strtotime($CreatedDate_StringType.$duree));

        if ( strtotime($datenowStringType)<strtotime($date_fin_duree) ) {
             $em->remove($produit);
        }
    }
    array_values($products);

    return $this->render('product/index.html.twig', array(
        'products' => $products,
    ));
}

没有返回错误,但产品未被删除。这可能是一个简单的错误,但我搜索了很多,我认为这是一个缺乏专注力。 请帮帮忙?

1 个答案:

答案 0 :(得分:0)

$date = ''; // calculate your date here, it should be DateTime object
$qb = $em->createQueryBuilder();
$qb->delete('Product', 'p');
$qb->where('p.duree < :date');
$qb->setParameter('date', $date);