加载集合的智能方法

加载集合的智能方法

2010年2月10日出版 in 发展
从模型中保存特定属性的值
2010年2月10日
修改magento布局的更好方法
2010年2月23日

玛托托 Collections的一个相当不明的特征是你实际上不’t have to call ->在能够访问集合中的项目之前,在集合上加载()。所以你可以这样做:

 

 

基础varien_data_collection类实现iteratoraggregate(http://php.net/manual/en/class.iteratoraggregate.php)延伸遍历的界面(http://www.php.net/manual/en/class.traversable.php) 界面。当一个类扩展到遍历界面时,它可以保证可以使用foreach()迭代该类。当在集合上调用foreach时,它会调用varien_data_collection类中的getIterator()方法,并使用从该方法返回的值作为eacherates遍历的值。这是getiterator()方法:

这种自动加载功能适用于EAV和平板表集。

如您所见,收集可确保在每个循环运行之前加载它。注意:集合只能在每个实例化一次加载一次。如果要重新加载集合,则必须调用Clear()方法,然后重置在再次调用load()方法之前重置Select和Filters。

知道收集函数以这种方式允许您编写代码而不明确调用加载()。这最终应该导致更灵活的代码。您可以在加载集合的块中具有一种方法。然后,该集合可以由模板文件调用并通过迭代,或者您可以使用另一个方法从第一个方法加载集合,然后为其添加其他选择/过滤器。这种情况下,没有明确调用load()会导致更灵活和可重复使用的代码。

1 Comment

  1. g 说:

    好解释

    谢谢

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

本网站使用AkisMet减少垃圾邮件。 了解如何处理评论数据.

最近的帖子 查看全部
3月1日,2021年

Covid的巨大加速要求再次欺诈和消费者虐待警惕

2月3日,2021年

社交媒体在科迪德自然时期的增长’s One

1月5日,2021年

替代社交媒体

您是否注意到您的Facebook和Instagram内容似乎越来越少,并且每次通过都会越来越少?用于达到的帖子 […]