【问题标题】:Criterion on object relation list field对象关系列表字段的标准
【发布时间】:2015-03-11 17:00:03
【问题描述】:

使用 eZ Publish 2014.11,我想过滤 objectrelationlist 字段的搜索结果。

我使用这段代码(我删除了所有与 objectrelatiolist 字段无关的部分):

        $query->query = new Criterion\LogicalAnd(
        array(
            // ...
            new Criterion\Field(  'myField', Criterion\Operator::EQ, my_value ),
            // ...
        )
    );

根据分析器,生成的查询看起来像这样(我删除了所有与 objectrelatiolist 字段无关的部分):

SELECT 
-- ...
      AND `ezcontentobject`.`id` IN (
        SELECT 
          `contentobject_id` 
        FROM 
          `ezcontentobject_attribute` 
        WHERE 
          (
            -- ...
            AND (
              `contentclassattribute_id` IN ('342') 
              AND `sort_key_string` = my_value
            )
          )
      ) 
-- ... 

数据库 sort_key_string 中的字段行显然是空的(尽管data_text 字段中显示了现有关系):

*************************** 385. row ***************************
   attribute_original_id: 0
contentclassattribute_id: 342
        contentobject_id: 137
              data_float: 0
                data_int: NULL
               data_text: <?xml version="1.0" encoding="utf-8"?>
<related-objects><relation-list><relation-item priority="1" contentobject-id="67" contentobject-version="1" node-id="69" parent-node-id="2" contentclass-id="43" contentclass-identifier="theme" contentobject-remote-id="00162a519495cd3b956192ea30b68761"/><relation-item priority="2" contentobject-id="68" contentobject-version="1" node-id="70" parent-node-id="2" contentclass-id="43" contentclass-identifier="theme" contentobject-remote-id="853215e40ca057a787a8cea9cdd5ddce"/></relation-list></related-objects>

        data_type_string: ezobjectrelationlist
                      id: 614
           language_code: fre-FR
             language_id: 2
            sort_key_int: 0
         sort_key_string: 
                 version: 1

所以我的问题是:有没有办法使用 objectrelationlist 上的条件来搜索内容?

【问题讨论】:

    标签: ezpublish


    【解决方案1】:

    我应该像这样使用fieldRelation 标准:

    new Criterion\FieldRelation(  'myField', Criterion\Operator::IN, array(my_value) ),
    

    【讨论】:

    • Sylvain 是否可以通过在目标相关内容中指定字段标识符和字段值来使用 FieldRelation ?一种新的 Criterion\FieldRelation('myField', Criterion\Operator::EQ, array('title' => 'test') ),
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 2011-12-29
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 2020-08-14
    • 1970-01-01
    相关资源
    最近更新 更多