सोनाटाएडमिन कस्टम मार्ग

मैं अपने सोनाटाएडमिन इकाइयों में से एक में कैलेंडर पर अलग-अलग <�कोड> ईवेंट प्रदर्शित करने का प्रयास कर रहा हूं।

मेरे पास 2 सेवाएं, अभ्यास और कार्यक्रम है:

bm.user.admin.practice:
   class: BM\UserBundle\Admin\PracticeAdmin
   tags:
     - { name: sonata.admin, manager_type: orm, group: cvp_users, label: Practice }
   arguments: [bm.user.admin.practice, BM\UserBundle\Entity\Practice, BMUserBundle:PracticeAdmin]

तथा

bm.crm.admin.event:
   class: BM\CrmBundle\Admin\EventAdmin
   tags:
     - { name: sonata.admin, manager_type: orm, group: cvp_users, label: Schedule }
   arguments: [bm.crm.admin.event, BM\CrmBundle\Entity\Event, BMCrmBundle:EventAdmin]

The calendar is displayed in the editAction of the Practice

My problem is, I'm trying to get results from an action in the EventAdminController

/**
 * Fetch Events based on User.
 *
 * @Route("/admin-events-create/{id}", name="create_event", options={"expose"=true})
 * @Method("GET|POST")
 * @Template()
 */
public function fetchEventsAction(Request $request, $id)
{
    $em = $this->getDoctrine()->getManager();

    $user = $em->getRepository('BMUserBundle:User')->find($id);
    $events = $em->getRepository('BMCrmBundle:Event')->findAllEventsByUser($user->getId());

}

मैं इसे निम्नलिखित का उपयोग करके कॉल करने की कोशिश कर रहा हूं:

{{path ('fetch_events', {_sonata_admin: 'bm.crm.admin.events'})}}

लेकिन उसमें id गुम है जिसे मुझे नियंत्रक में उपयोग करने की आवश्यकता है।

इसे बदलना:

{{ path('fetch_events', { id: 'myObj.id', _sonata_admin: 'bm.crm.admin.event'} ) }} or anything similar always gives me:

There is no_sonata_admindefined for the controller

किसी भी विचार पर मैं id मान कैसे पारित कर सकता हूं, मुझे मार्ग की आवश्यकता है?

धन्यवाद

1
जोड़ा संपादित
विचारों: 1

2 उत्तर

EventAdmin कक्षा में सबसे पहले

use Sonata\AdminBundle\Route\RouteCollection;

फिर विधि जोड़ें

protected function configureRoutes(RouteCollection $collection)
{
    $collection->add('fetch_events', '{id}/fetch_events');
}

यदि आप grep के साथ * निक्स सिस्टम पर हैं, तो आप व्यवस्थापक वर्ग के लिए घोषित मार्गों की जांच कर सकते हैं:

php app/console router:debug | grep events

इसे प्रयोग करें

{{ path('fetch_events', { 'id': object.id } ) }}
1
जोड़ा

मुझे लगता है कि त्रुटि पथ में है

{{ path('fetch_events', { 'id': object.id } ) }}

सोनाटा कस्टम मार्ग व्यवस्थापक के बेस रूट नाम के साथ prefixed है:

{{ path('your_admin_base_route_name_fetch_events', { 'id': object.id } ) }}

कस्टम मार्ग का संक्षिप्त नाम व्यवस्थापक विधि द्वारा उत्पन्न यूआरएल के लिए इस्तेमाल किया जा सकता है

admin.generateUrl('fetch_events', { 'id': object.id } )
0
जोड़ा