行动
编辑本页一个>行动类构造函数:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16
//唯一的强制参数是动作的内部名称(即//用于将动作添加到某些页面,重新排序动作位置等)$viewInvoice=行动::新(“viewInvoice”);//第二个可选参数是最终用户可见的标签$viewInvoice=行动::新(“viewInvoice”,“发票”);//不显式定义标签或将其设置为NULL意味着//标签是由名称自动生成的。viewInvoice ->查看发票$viewInvoice=行动::新(“viewInvoice”,零);//设置标签为FALSE,不显示此操作的任何标签(但请确保//显示操作的图标;否则用户将看不到它)$viewInvoice=行动::新(“viewInvoice”,假);//第三个可选参数是FontAwesome图标的完整CSS类//见https://fontawesome.com/v6/search?m=free$viewInvoice=行动::新(“viewInvoice”,“发票”,“fa fa-file-invoice”);
然后你可以配置按钮/元素的基本HTML/CSS属性来表示动作:
12 3 4 5 6 7 8 9 10 11 12 13
$viewInvoice=行动::新(“viewInvoice”,“发票”,“fa fa-file-invoice”)//将动作呈现为 HTML元素->displayAsLink ()//将动作呈现为->displayAsButton ()//添加到HTML元素的属性的键值数组->setHtmlAttributes ([“data-foo”= >“酒吧”,“目标”= >“平等”])//删除动作和set的所有现有CSS类//给定的值作为HTML元素的CSS类->setCssClass (“btn btn-primary action-foo”)//将给定的值添加到动作的现有CSS类(这是//在自定义内置动作时有用,该动作已经有CSS类)->addCssClass (“some-custom-css-class text-danger”)
请注意
当使用setCssClass ()
或addCssClass ()
方法,操作将丢失由EasyAdmin应用的默认CSS类(.btn
而且.action——<动作名称>
)。您可能希望手动添加这些CSS类,以使您的操作看起来符合预期。
一旦你配置了基础,使用以下方法之一来定义单击动作时执行哪个方法:
linkToCrudAction ()
:执行当前CRUD控制器的某个方法;
linkToRoute ()
:通过它的路由执行一些常规的Symfony控制器;ob娱乐下载
linkToUrl ()
:访问外部URL(当你的操作没有被你的应用程序服务时很有用)。
下面的例子展示了实践中的各种动作:
12 34 56 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
名称空间应用程序\控制器\管理;使用应用程序\实体\发票;使用应用程序\实体\订单;使用EasyCorp\包\EasyAdminBundle\配置\行动;使用EasyCorp\包\EasyAdminBundle\配置\行动;使用EasyCorp\包\EasyAdminBundle\控制器\AbstractCrudController;类OrderCrudController扩展AbstractCrudController{/ /……公共函数configureActions(操作$行动):行动{//这个动作执行当前CRUD控制器的renderInvoice()方法$viewInvoice=行动::新(“viewInvoice”,“发票”,“fa fa-file-invoice”)->linkToCrudAction (“renderInvoice”);//如果该方法没有在CRUD控制器中定义,则链接到它的路由$sendInvoice=行动::新(“sendInvoice”,发送发票的,“fa fa-envelope”)//如果路由需要参数,你可以定义它们:// 1)使用数组->linkToRoute (“invoice_send”, (“send_at”= > (新\ DateTime (“+ 10分钟”))->格式(“YmdHis”),)// 2)使用一个可调用对象(如果参数依赖于实体实例时有用)//(函数参数的类型提示是可选的,但很有用)->linkToRoute (“invoice_send”,函数(订单$订单):数组{返回[“uuid”= >$订单->getId (),“方法”= >$订单->getUser ()->getPreferredSendingMethod ()];});//该操作指向Stripe应用程序中的发票$viewStripeInvoice=行动::新(“viewInvoice”,“发票”,“fa fa-file-invoice”)->linkToUrl (函数(订单$实体){返回“https://www.stripe.com/invoice/”.$实体->getStripeReference ();});返回$行动/ /……->添加(Crud::PAGE_DETAIL,$viewInvoice)->添加(Crud::PAGE_DETAIL,$sendInvoice)->添加(Crud::PAGE_DETAIL,$viewStripeInvoice);}公共函数renderInvoice(AdminContext$上下文){$订单=$上下文->getEntity ()->getInstance ();//在这里添加你的逻辑…}}
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16
//唯一的强制参数是动作的内部名称(即//用于将动作添加到某些页面,重新排序动作位置等)$viewInvoice=行动::新(“viewInvoice”);//第二个可选参数是最终用户可见的标签$viewInvoice=行动::新(“viewInvoice”,“发票”);//不显式定义标签或将其设置为NULL意味着//标签是由名称自动生成的。viewInvoice ->查看发票$viewInvoice=行动::新(“viewInvoice”,零);//设置标签为FALSE,不显示此操作的任何标签(但请确保//显示操作的图标;否则用户将看不到它)$viewInvoice=行动::新(“viewInvoice”,假);//第三个可选参数是FontAwesome图标的完整CSS类//见https://fontawesome.com/v6/search?m=free$viewInvoice=行动::新(“viewInvoice”,“发票”,“fa fa-file-invoice”);
12 3 4 5 6 7 8 9 10 11 12 13
$viewInvoice=行动::新(“viewInvoice”,“发票”,“fa fa-file-invoice”)//将动作呈现为 HTML元素->displayAsLink ()//将动作呈现为->displayAsButton ()//添加到HTML元素的属性的键值数组->setHtmlAttributes ([“data-foo”= >“酒吧”,“目标”= >“平等”])//删除动作和set的所有现有CSS类//给定的值作为HTML元素的CSS类->setCssClass (“btn btn-primary action-foo”)//将给定的值添加到动作的现有CSS类(这是//在自定义内置动作时有用,该动作已经有CSS类)->addCssClass (“some-custom-css-class text-danger”)
请注意
当使用setCssClass ()
或addCssClass ()
方法,操作将丢失由EasyAdmin应用的默认CSS类(.btn
而且.action——<动作名称>
)。您可能希望手动添加这些CSS类,以使您的操作看起来符合预期。
linkToCrudAction ()
:执行当前CRUD控制器的某个方法;linkToRoute ()
:通过它的路由执行一些常规的Symfony控制器;ob娱乐下载linkToUrl ()
:访问外部URL(当你的操作没有被你的应用程序服务时很有用)。12 34 56 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
名称空间应用程序\控制器\管理;使用应用程序\实体\发票;使用应用程序\实体\订单;使用EasyCorp\包\EasyAdminBundle\配置\行动;使用EasyCorp\包\EasyAdminBundle\配置\行动;使用EasyCorp\包\EasyAdminBundle\控制器\AbstractCrudController;类OrderCrudController扩展AbstractCrudController{/ /……公共函数configureActions(操作$行动):行动{//这个动作执行当前CRUD控制器的renderInvoice()方法$viewInvoice=行动::新(“viewInvoice”,“发票”,“fa fa-file-invoice”)->linkToCrudAction (“renderInvoice”);//如果该方法没有在CRUD控制器中定义,则链接到它的路由$sendInvoice=行动::新(“sendInvoice”,发送发票的,“fa fa-envelope”)//如果路由需要参数,你可以定义它们:// 1)使用数组->linkToRoute (“invoice_send”, (“send_at”= > (新\ DateTime (“+ 10分钟”))->格式(“YmdHis”),)// 2)使用一个可调用对象(如果参数依赖于实体实例时有用)//(函数参数的类型提示是可选的,但很有用)->linkToRoute (“invoice_send”,函数(订单$订单):数组{返回[“uuid”= >$订单->getId (),“方法”= >$订单->getUser ()->getPreferredSendingMethod ()];});//该操作指向Stripe应用程序中的发票$viewStripeInvoice=行动::新(“viewInvoice”,“发票”,“fa fa-file-invoice”)->linkToUrl (函数(订单$实体){返回“https://www.stripe.com/invoice/”.$实体->getStripeReference ();});返回$行动/ /……->添加(Crud::PAGE_DETAIL,$viewInvoice)->添加(Crud::PAGE_DETAIL,$sendInvoice)->添加(Crud::PAGE_DETAIL,$viewStripeInvoice);}公共函数renderInvoice(AdminContext$上下文){$订单=$上下文->getEntity ()->getInstance ();//在这里添加你的逻辑…}}