/** * Create maker * * @param int $rank * * @return Maker */ protected function createMaker($rank = null) { /** * @var Generator $faker */ $faker = $this->getFaker(); if (!$rank) { $rank = $faker->randomNumber(3); } $Maker = new Maker(); $Maker->setName($faker->word); $Maker->setRank($rank); $Maker->setDelFlg(Constant::DISABLED); $this->app['orm.em']->persist($Maker); $this->app['orm.em']->flush($Maker); return $Maker; }
/** * Save method. * * @param Maker $Maker * * @return bool */ public function save(Maker $Maker) { $em = $this->getEntityManager(); try { if (!$Maker->getId()) { $rank = $this->createQueryBuilder('m')->select('MAX(m.rank)')->getQuery()->getSingleScalarResult(); if (!$rank) { $rank = 0; } $Maker->setRank($rank + 1); $Maker->setDelFlg(Constant::DISABLED); $em->createQueryBuilder()->update('Plugin\\Maker\\Entity\\Maker', 'm')->set('m.rank', 'm.rank + 1')->where('m.rank > :rank')->setParameter('rank', $rank)->getQuery()->execute(); } $em->persist($Maker); $em->flush($Maker); } catch (\Exception $e) { return false; } return true; }