簡體   English   中英

Sonata用戶捆綁包自定義批處理操作

[英]Sonata User Bundle custom batch action

因此,正如標題所示,我需要向SonataUserBundle添加自定義批處理操作。

通過此操作,操作員可以向所有用戶(或選定的用戶)發送消息。 因此,它需要擴展SonataAdminBundle以便能夠為此操作添加自定義視圖。

問題是, ApplicationSonataUserBundle.php覆蓋了SonataUserBundle

class ApplicationSonataUserBundle extends Bundle
{
    /**
     * {@inheritdoc}
     */
    public function getParent()
    {
        return 'SonataUserBundle';
    }
}

如果我更改它,它將破壞捆綁軟件。

有什么解決方案可以將此批處理操作添加到捆綁軟件中?

您需要編輯sonata_user配置以使用您自己的控制器,而不是默認的Sonata Admin CRUD控制器。

因此,在您的config.yml中添加以下內容:

sonata_user:
    admin:           
        user:
            controller:     MyAppMyBundle:UserAdmin

並創建自己的控制器來擴展CRUDController

namespace MyApp\MyBundle\Controller;

use Sonata\AdminBundle\Controller\CRUDController as Controller;

class UserAdminController extends Controller
{
}

現在您可以添加自己的批處理操作,例如

class UserAdminController extends Controller
{
   public function batchActionSendMail(ProxyQueryInterface $selectedModelQuery) 
   {      
      $selectedModels = $selectedModelQuery->execute();

      // Your stuff here

      return new RedirectResponse($this->admin->generateUrl('list', $this->admin->getFilterParameters()));
   }
}

希望它可以幫助某人:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM