| Current Path : /var/www/v3.cesa.co.za/src/ContentBundle/Controller/ |
| Current File : /var/www/v3.cesa.co.za/src/ContentBundle/Controller/CRUDController.php |
<?php
namespace App\ContentBundle\Controller;
use Sonata\AdminBundle\Controller\CRUDController as BaseController;
use Sonata\AdminBundle\Datagrid\ProxyQueryInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
use App\CoreBundle\Services\ServiceGetterManager;
class CRUDController extends BaseController {
/**
* @param ProxyQueryInterface $selectedModelQuery
* @param Request $request
*
* @return RedirectResponse
*/
public function batchActionDuplicate(ProxyQueryInterface $selectedModelQuery, ServiceGetterManager $sg) {
if ($this->admin->isGranted('EDIT') === false || $this->admin->isGranted('DELETE') === false) {
throw new AccessDeniedException();
}
$selectedModels = $selectedModelQuery->execute();
$formItemManager = $sg->get('form_item.manager');
try {
foreach ($selectedModels as $selectedModel) {
$formItemManager->duplicate($selectedModel, $this->admin->getFormObject(), count($selectedModels));
}
} catch (\Exception $e) {
$this->addFlash('error', 'Duplicate Items Error: ' . $e->getMessage());
// echo $e->getMessage() . '<br />';
// echo $e->getTraceAsString() . '<br />';
// exit;
return new RedirectResponse($this->admin->generateUrl('list', array('filter' => $this->admin->getFilterParameters())));
}
$this->addFlash('success', 'Duplicate Items Success');
return new RedirectResponse($this->admin->generateUrl('list', array('filter' => $this->admin->getFilterParameters())));
}
}