public function createAction() { $view = new ViewModel(); $request = $this->getRequest(); $entityManager = $this->getEntityManager(); if ($request->isPost()) { $strUser = $request->getPost()->user; $strProductIds = $request->getPost()->products; $strDescription = $request->getPost()->description; $reporter = $entityManager->find("User", $strUser); $engineer = $entityManager->find("User", $strUser); if (!$reporter || !$engineer) { echo "No reporter and/or engineer found for the input.\n"; exit(1); } $bug = new \Bug(); $bug->setDescription($strDescription); $bug->setCreated(new \DateTime("now")); $bug->setStatus("OPEN"); foreach ($strProductIds as $productId) { $product = $entityManager->find("Product", $productId); $bug->assignToProduct($product); } $bug->setReporter($reporter); $bug->setEngineer($engineer); $entityManager->persist($bug); $entityManager->flush(); $view->setVariable('bug', $bug); $view->setTemplate('application/bug/create_post'); } else { // If you don't have parameters in the query, you can use the getResult() shortcut $users = $entityManager->getRepository('User')->findAll(); $view->setVariable('users', $users); $products = $entityManager->getRepository('Product')->findAll(); $view->setVariable('products', $products); } return $view; }
<?php $entityManager = (require_once __DIR__ . '/bootstrap.php'); $theReporterId = $argv[1]; $theDefaultEngineerId = $argv[2]; $productIds = explode(",", $argv[3]); /** @var User $reporter */ $reporter = $entityManager->find("User", $theReporterId); /** @var User $engineer */ $engineer = $entityManager->find("User", $theDefaultEngineerId); if (!$reporter || !$engineer) { echo "No reporter and/or engineer found for the input.\n"; exit(1); } $bug = new Bug(); $bug->setDescription("Something does not work again!"); $bug->setCreated(new DateTime("now")); $bug->setStatus("OPEN"); foreach ($productIds as $productId) { /** @var Product $product */ $product = $entityManager->find("Product", $productId); $bug->assignToProduct($product); } $bug->setReporter($reporter); $bug->setEngineer($engineer); $entityManager->persist($bug); $entityManager->flush(); echo "Your new Bug Id: " . $bug->getId() . "\n";
public function assignToProduct($product) { $this->__load(); return parent::assignToProduct($product); }