【发布时间】:2013-02-18 11:41:02
【问题描述】:
在自定义 entityRepository 类中调用 entityRepository 的 find 方法时出现以下致命错误
致命错误:在 C:\Users\user\Desktop\projects\interview\application\libraries\Doctrine\ORM 中,未捕获的异常“Doctrine\ORM\OptimisticLockException”带有消息“无法在未版本化的实体 Entities\Comment 上获得乐观锁” \OptimisticLockException.php:62 堆栈跟踪:#0 C:\Users\user\Desktop\projects\interview\application\libraries\Doctrine\ORM\EntityRepository.php(140): Doctrine\ORM\OptimisticLockException::notVersioned('Entities \Commen...') #1 C:\Users\user\Desktop\projects\interview\application\models\Repositories\CommentRepository.php(24): Doctrine\ORM\EntityRepository->find('Entities\Commen.. .', 1) #2 C:\Users\user\Desktop\projects\interview\application\controllers\CommentController.php(65): Repositories\CommentRepository->activateByIds(Array) #3 [内部函数]: CommentController-> approveComments() #4 C:\Users\user\Desktop\projects\interview\system\core\CodeIgniter.php(359): call_user_func_array(Array, Array) #5 C:\Users\user\Desktop\projects\interview\索引.php( 203): 第 62 行 C:\Users\user\Desktop\projects\interview\application\libraries\Doctrine\ORM\OptimisticLockException.php 中的 require_once('C:\Users\user\D...')
这是我调用 find 的方法
public function activateByIds($arrayOfIds){
if (count($arrayOfIds)>=1) {
for ($i=0; $i<count($arrayOfIds); $i++){
$comment = parent::find('Entities\Comment', $arrayOfIds[$i]);
$comment->setIsactive(1);
$this->_em->merge($comment);
$this->_em->flush();
}
return true;
}
else return false;
}
我做错了什么??
【问题讨论】:
-
我在教义和编程本身方面都是新手。无法找出实体未版本化的含义
标签: php codeigniter select doctrine-orm find