魔扣论坛

魔扣源码论坛业务
查看: 1067|回复: 6

[经验交流] 在 Magento 中如何使用集合查询条件

[复制链接]
  • TA的每日心情
    慵懒
    14 小时前
  • 签到天数: 2957 天

    [LV.Master]开坛老将

    7万

    主题

    227

    回帖

    27万

    积分

    管理员

    Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

    魔扣币
    745759
    贡献
    157915
    威望
    32799

    最佳新人活跃会员热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2015-12-15 15:52:19 | 显示全部楼层 |阅读模式
    魔扣币兑换比例:【 50以下 : ¥1 = 10 魔扣币 】丨【 50 - 100 :¥1 = 20 魔扣币】丨【 100以上:¥1 = 30 魔扣币 】

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    集合是一个包含其他型号的机种型号,它基本上是用在Magento处理的产品清单(即从类别或捆绑选项),但不是唯一的。

    TO DO:解释如何Magento的实现集合 – 使用此解释如何Magento的实现代码模型中的一个集合,使人们可以学会写自己的藏品

    这是一个简单的例子,加载一些产品集合从一个类别,并命令他们在自己的产品名称使用Magento的API的。

    1. $collection = Mage::getModel('catalog/category')->load($categoryId)
    2.     ->getProductCollection()
    3.     ->addAttributeToSort('name', 'ASC');
    复制代码

    使用多个字段排序,您可以调用链接到该集合的方法 addAttributeToSort(preferred)

    1. $collection = Mage::getModel('module/model_name')->getCollection()
    2.     ->addAttributeToSort('order', 'ASC')
    3.     ->addAttributeToSort('last_name', 'ASC')
    4.     ->addAttributeToSort('first_name', 'ASC')
    复制代码

    TODO:使用Magento的API使用的情况下,不是Zend_Db_Select的。

    您也可以通过IF/THEN语句,但一定要使用正确引用表的字段。

    1. $collection = Mage::getModel('module/model_name')->getCollection();
    2. $collection->getSelect()->order( array('IF(`order`>0, `order`, 9999) ASC',
    3.      'last_name ASC', 'first_name ASC') );
    复制代码

    在此示例中,将按顺序字段,排序表然后按上次的名称,然后按名字、 凡订单是否大于零,是秩序正在小于或等于零,所有升序。

    联接表

    若要添加 SQL 联接到选择

    1. $collection = Mage::getModel('module/model_name')->getCollection();
    2. $collection->getSelect()->join( array('table_alias'=>$this->getTable('module/table_name')), 'main_table.foreign_id = table_alias.primary_key', array('table_alias.*'), 'schema_name_if_different');
    复制代码

    在此示例中的联接方法采用 alias⇒table_name 密钥对,然后使用 main_table 引用原始的选择中,标准的 join 子句的数组然后在联接中要检索的字段的数组 (默认为 *),可以作为最后一个参数指定不同的架构。

    复审 → 默认为内部联接,其他人可以使用:

    →joinInner() →joinLeft() →joinRight() →joinFull() →joinCross() →joinNatural()

    请参阅 lib/Zend/Db/Select.php 的源码。

    集合操作方法

    Varien_Data_Collection
    Varien/Data/Collection.php


    Varien_Data_Collection_Db
    Varien/Data/Collection/Db.php
    继承Varien_Data_Collection,除了上面的方法(重新)定义如下:


    筛选器的条件代码

    如果传递的数组,但没有属性代码指定,它将被解释为一组 OR 条件将在相同的方式进行处理。

    如果不指定了任何属性代码,则其默认值为不等。
    例如:

    1. $collection->addAttributeToFilter('field_name', array(
    2.     'in' => array(1, 2, 3),
    3.     ));

    4. $collection->addAttributeToFilter('date_field', array(
    5.    'from' => '2000-09-10',
    6.     ));

    7. $collection->addAttributeToFilter('date_field', array(
    8.     'from' => '10 September 2000',
    9.     'to' => '11 September 2000',
    10.     'date' => true, // specifies conversion of comparison values
    11.     ));
    12. $collection->addAttributeToFilter('field_name', array(
    13.     'notnull' => true,
    14.     ));

    15. $collection->addAttributeToFilter('field_name', 1); // tests for equality

    16. // Add OR condition:
    17. $collection->addAttributeToFilter(array(
    18.     array(
    19.         'attribute' => 'field_name',
    20.         'in'        => array(1, 2, 3),
    21.         ),
    22.     array(
    23.         'attribute' => 'date_field',
    24.         'from'      => '2000-09-10',
    25.         ),
    26.     ));
    复制代码

    Mage_Eav_Model_Entity_Collection
    Mage/Eav/Model/Entity/Collection/Abstract.php
    继承上述方法Varien_Data_Collection_Db,除了(重新)定义了以下:


    会员购买:>> 点击购买 << | 魔扣币购买:>> 点击购买 <<
    承接业务:服务器代维丨网站托管丨SEO
    联系客服:微信:morko-net | QQ:1367681973

    该用户从未签到

    2

    主题

    260

    回帖

    523

    积分

    高级魔扣

    Rank: 4

    魔扣币
    261
    贡献
    261
    威望
    0
    发表于 2017-1-4 20:24:55 来自手机 | 显示全部楼层
    站位支持

    该用户从未签到

    0

    主题

    240

    回帖

    480

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    240
    贡献
    240
    威望
    0
    发表于 2017-6-13 14:58:35 | 显示全部楼层

    该用户从未签到

    2

    主题

    256

    回帖

    514

    积分

    高级魔扣

    Rank: 4

    魔扣币
    256
    贡献
    256
    威望
    0
    发表于 2017-11-23 18:37:10 | 显示全部楼层
    发发呆,回回帖,工作结束~

    该用户从未签到

    0

    主题

    248

    回帖

    496

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    248
    贡献
    248
    威望
    0
    发表于 2018-6-14 13:40:57 | 显示全部楼层
    黑夜给了我一双黑色的眼睛,魔扣源码论坛,可我却用它来翻白眼。

    该用户从未签到

    1

    主题

    256

    回帖

    513

    积分

    高级魔扣

    Rank: 4

    魔扣币
    256
    贡献
    256
    威望
    0
    发表于 2019-1-22 16:16:26 来自手机 | 显示全部楼层
    太给力了,永远支持魔扣源码论坛!
  • TA的每日心情
    开心
    2019-11-1 10:55
  • 签到天数: 263 天

    [LV.8]以坛为家

    1

    主题

    519

    回帖

    1703

    积分

    青铜魔扣

    Rank: 5Rank: 5

    魔扣币
    4788
    贡献
    1052
    威望
    1
    发表于 2019-1-23 15:13:02 | 显示全部楼层
    强烈支持楼主,感谢魔扣科技分享的精品源码
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 联系我们
    • 新浪微博 :
    • 在线客服 :魔扣科技 
    • 源码QQ群 :魔扣源码论坛官方总群
    • 联系邮箱 :charlin#morko.net
    • 微信扫一扫
    快速回复 返回顶部 返回列表