/** * Action executed when trying to add a new method in collecting methods table * Returns id if successfull and error message if not * @param sfWebRequest $request Request coming from browser */ public function executeAddMethod(sfWebRequest $request) { if ($this->getUser()->isA(Users::REGISTERED_USER)) { $this->forwardToSecureAction(); } // Test well action is Ajaxly called and that value parameter exist $this->forward404Unless($request->isMethod(sfRequest::POST) && $request->isXmlHttpRequest() && $request->hasParameter('value')); try { // Define a new object and try to add and save new value passed $newMethod = new CollectingMethods(); $newMethod->setMethod($request->getParameter('value')); $newMethod->save(); // Return id of new record saved $response = $newMethod->getId(); } catch (Doctrine_Exception $ne) { // Return database error if occurs $e = new DarwinPgErrorParser($ne); $response = $e->getMessage(); } return $this->renderText($response); }
<?php include dirname(__FILE__) . '/../../bootstrap/Doctrine.php'; $t = new lime_test(4, new lime_output_color()); $methods = Doctrine::getTable('CollectingMethods')->fetchMethods(); $t->is(count($methods), 2, '"2" Methods defined by default'); $t->info('Insert a new value'); $newVal = new CollectingMethods(); $newVal->setMethod('Intuition'); $newVal->save(); $newValIndex = $newVal->getId(); $methods = Doctrine::getTable('CollectingMethods')->fetchMethods(); $t->is(count($methods), 3, '"3" Methods defined now'); $t->is($methods[$newValIndex], 'Intuition', 'The new value inserted is well "Intuition"'); foreach ($methods as $value) { $t->is($value, 'Intuition', 'The new value ("Intuition") is well the "first" one to be in the list brought by "fetchMethods"'); break; }
public function addMethod($data, $staging_id) { $method = Doctrine::getTable('CollectingMethods')->checkIfMethod($data); if ($method) { $ref = $method->getId(); } else { $object = new CollectingMethods(); $object->setMethod($data); $object->save(); $ref = $object->getId(); } $object = new StagingMethods(); $object->fromArray(array("staging_ref" => $staging_id, "collecting_method_ref" => $ref)); return $object; }