J'ai besoin d'obtenir une grille de données sur le contrôleur mais cela ne permet pas d'entrer des paramètres dans la fonction. Comment vous récupérez cette information?Actions par lots avec Sonata Admin Bundle sur Symfony
services:
admin.category:
class: AppBundle\Admin\CategoryAdmin
arguments: [~, AppBundle\Entity\Category, AppBundle:CRUDCategory, ~]
tags:
- { name: sonata.admin, manager_type: orm, group: "General", label: Categories }
C'est le contrôleur
<?php
namespace AppBundle\Controller;
use Sonata\AdminBundle\Controller\CRUDController as SonataController;
use Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQuery as ProxyQueryInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
class CRUDCategoryController extends SonataController {
/**
* @param ProxyQueryInterface $selectedModelQuery
* @param Request $request
*
* @return RedirectResponse
*/
public function batchActionInactive(ProxyQueryInterface $selectedModelQuery, Request $request) {
$em = $this->getDoctrine()->getManager();
$category = $em->getRepository('AppBundle:Category')->find($request->getId());
$category->setState('INACTIVE');
$em->flush();
return new RedirectResponse(
$this->admin->generateUrl('list', $this->admin->getFilterParameters())
);
}
}
Et ceci est la fonction getBatchActions
public function getBatchActions() {
$actions = parent::getBatchActions();
unset($actions['delete']);
$actions['inactive'] = array(
'label' => 'Disable category',
'ask_confirmation' => false
);
return $actions;
}
L'erreur est
Catchable Fatal Error: Argument 2 passed to AppBundle\Controller\CRUDCategoryController::batchActionInactive() must be an instance of AppBundle\Controller\Request, none given
Merci, j'ai ajouté la ligne 'utiliser Symfony \ Component \ HttpFoundation \ demande;' , mais le problème continue – Dasaaf
voir mon édition, vous n'avez pas mis "action" au bon endroit – greg0ire
J'ai suivi cette documentation [link] (https://sonata-project.org/bundles/admin/master/doc/reference/ batch_actions.html #) bien que symfony soit traité comme vous le mentionnez, Sonata le fait avec 'batchActionInactive' – Dasaaf