public function executeWrite(AgaviParameterHolder $rd) { if ($rd->getParameter('xaction', false) == 'create' || $rd->getParameter('xaction', false) == 'update' || $rd->getParameter('xaction', false) == 'destroy') { $rows = json_decode($rd->getParameter('rows', array())); if (!is_array($rows)) { $rows = array($rows); } $c = array(); foreach ($rows as $category) { try { if ($rd->getParameter('xaction', false) == 'destroy') { if (isset($category->catid)) { $this->categories->deleteCategoryRecord($category->catid); } } else { $this->categories->createCategory((array) $category); $c[] = (array) $category; } } catch (Doctrine_Exception $e) { } } $this->setAttributeByRef('categories', $c); return $this->getDefaultViewName(); } return $this->executeRead($rd); }