2016-07-20 5 views
0

symfony 3.0でテーブルを切り捨てたいsymfony 3でテーブルを切り詰めるには?

私は次のアプローチを使用しています。

エンティティを作成します。User.php

は、リポジトリの作成:UserRepository.php

/** 
* UserRepository 
*/ 

namespace UserBundle\Entity; 

use Doctrine\ORM\EntityRepository; 


class UserRepository extends EntityRepository { 

    public function truncateTable() { 
     $em = $this->getEntityManager(); 
     $dql = 'TRUNCATE TABLE UserBundle:User'; 
     $query = $em->createQuery($dql); 

     return $query->getResult(); 
    } 

}

私は、コントローラからこのコードを実行しようとしています:

:私は、メッセージの次になっていますが

[2/2] QueryException:[構文エラー]行0、col 0:エラー:予想されるSELECT、UPDATEまたはDELETE、 'TRUNCATE'が発生しました

誰でも私を示唆できますか?

答えて

4

次のコードは、あなたの

$classMetaData = $em->getClassMetadata($className); 
    $connection = $em->getConnection(); 
    $dbPlatform = $connection->getDatabasePlatform(); 
    $connection->beginTransaction(); 
    try { 
     $connection->query('SET FOREIGN_KEY_CHECKS=0'); 
     $q = $dbPlatform->getTruncateTableSql($classMetaData->getTableName()); 
     $connection->executeUpdate($q); 
     $connection->query('SET FOREIGN_KEY_CHECKS=1'); 
     $connection->commit(); 
    } 
    catch (\Exception $e) { 
     $connection->rollback(); 
    }  
を助けるべきです
関連する問題