【问题标题】:Drupal 8 views ui : filter on custom fieldDrupal 8 视图 ui:过滤自定义字段
【发布时间】:2016-01-27 10:32:35
【问题描述】:

我对 D8 很陌生,我正在尝试做以下事情:

我有一个内容类型:电影。 在该内容类型中,我有一个自定义字段 api_id ,它只是一个整数。

当我在电影页面上时,我想在内容下显示一个带有相同 api_id 电影的块。

我设法为同一作者的同一部电影创建了块,但我不知道如何过滤 api_id(我玩过很多上下文过滤器......)

有什么想法吗?谢谢

【问题讨论】:

    标签: drupal-views drupal-8


    【解决方案1】:

    好的,我设法用 hook_views_query_alter() 做我想做的事:

    function my_module_views_query_alter(\Drupal\views\ViewExecutable $view, \Drupal\views\Plugin\views\query\QueryPluginBase $query)
    {
        if($view->id() == 'my_view' && $view->current_display == 'my_block'){
            $movie= Node::load($view->args[0]);
            if(is_object($movie)) {
                foreach ($query->where as &$condition_group) {
                    foreach ($condition_group['conditions'] as &$condition) {
                        if ($condition['field'] == 'node__field_id_movie.field_id_movie_value') {
                            $condition = array(
                                'field' => 'node__field_id_movie.field_id_movie_value',
                                'value' => $movie->get('field_id_movie')->value,
                                'operator' => '=',
                            );
                        }
                    }
                }
            }
        }
    }
    

    为此,您必须首先在要覆盖过滤器的字段上创建一个带有简单过滤器的视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      • 1970-01-01
      • 2015-11-02
      相关资源
      最近更新 更多