As the name suggests, sonata admin custom list actions calls the wrong method.
There are two admin classes
there are two other controllers:
each admin classes are able to send sms and print the object using two different methods created in each controller,
here is my service.yml
:
services:
administration_product_product.admin.apple_id:
class: Administration\Product\ProductBundle\Admin\AppleIdAdmin
arguments: [~, Administration\Product\ProductBundle\Entity\AppleId, SonataAdminBundle:CRUD]
tags:
- {name: sonata.admin, manager_type: orm, group: Gift Cards, label: Apple ID}
administration_product_product.admin.sms_appleid:
class: Administration\Product\ProductBundle\Admin\AppleIdAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: admin, label: Apple ID }
arguments:
- null
- Administration\Product\ProductBundle\Entity\AppleId
- AdministrationProductProductBundle:SMS
administration_product_product.admin.print_appleid:
class: Administration\Product\ProductBundle\Admin\AppleIdAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: admin, label: Apple ID }
arguments:
- null
- Administration\Product\ProductBundle\Entity\AppleId
- AdministrationProductProductBundle:Print
administration_product_product.admin.i_tunes_gift_card:
class: Administration\Product\ProductBundle\Admin\ITunesGiftCardAdmin
arguments: [~, Administration\Product\ProductBundle\Entity\ITunesGiftCard, SonataAdminBundle:CRUD]
tags:
- { name: sonata.admin, manager_type: orm, group: Gift Cards, label: iTunes Gift Card }
administration_product_product.admin.print_itunes:
class: Administration\Product\ProductBundle\Admin\ITunesGiftCardAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: admin, label: iTunes Gift Card }
arguments:
- null
- Administration\Product\ProductBundle\Entity\ITunesGiftCard
- AdministrationProductProductBundle:Print
administration_product_product.admin.sms_itunes:
class: Administration\Product\ProductBundle\Admin\ITunesGiftCardAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: admin, label: iTunes Gift Card }
arguments:
- null
- Administration\Product\ProductBundle\Entity\ITunesGiftCard
- AdministrationProductProductBundle:SMS
The weird thing is that, when sending apple id via sms (printing is ok!) i'm getting this error:
Controller "Administration\Product\ProductBundle\Controller\PrintController::smsAppleIdAction" for URI "/admin/product/product/appleid/smsAppleId" is not callable.
and when printing iTunes card (sms is ok!) this error shows:
Controller "Administration\Product\ProductBundle\Controller\SMSController::printITunesAction" for URI "/admin/product/product/itunesgiftcard/printITunes" is not callable.
Also all list_action twig files are ok and they call the correct action.
Well, the solution was to use a controller for each admin, and use sms and print method in this controller. Don't know why, but it could help someone... one day :)
so now, I have AppleIdContoller
, ITunesContoller
, and each of these controller contain the appropriate smsAction
and printAction