我尝试使用devel模块从内部定制订单模板页面-管理-商业-订单_%%.tpl.php获得订单变量。
我使用代码$order = commerce_order_load(123);
问:是否有可能不重新加载全部订单并获取变量?(假设我在order页面上,变量应该以任何方式加载,对吗?)谢谢你的解释。
发布于 2016-10-20 15:57:10
不必为那事担心了。
加载的实体至少是为该请求缓存的,所以要么加载一个尚未加载的实体,在这种情况下DB加载是不可避免的,要么只是从静态缓存中检索已经加载的实体。
另外,不要在模板文件中加载实体--总是在预处理钩子中这样做,并将变量传递进来。
发布于 2016-10-20 15:57:28
您需要使用commerce_order_load来加载所有数据的订单。如果订单已经加载到页面的其他位置,则订单不会加载两次,但顺序将从静态缓存中获取。因此,可以多次加载相同的订单。
如果确实需要清除缓存(可能需要将顺序与数据库中的顺序进行比较以查看已更改的内容),则可以使用commerce_order_load_multiple或直接调用entity_load。
https://drupal.stackexchange.com/questions/218356
复制相似问题