Ash*_*ena 1 php symfony doctrine-orm
我想截断symfony 3.0中的表
我正在使用以下方法.
创建实体: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();
}
Run Code Online (Sandbox Code Playgroud)
}
当我试图从控制器运行此代码时:我收到以下消息:
[2/2] QueryException:[语法错误]第0行,第0列:错误:预期SELECT,UPDATE或DELETE,得到'TRUNCATE'
谁能建议我?
下面的代码可以帮助您
$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();
}
Run Code Online (Sandbox Code Playgroud)