Php drupal 7查看\u查询\u更改如果字段为空,则使用另一个字段排序

Php drupal 7查看\u查询\u更改如果字段为空,则使用另一个字段排序,php,sorting,drupal,drupal-7,hook,Php,Sorting,Drupal,Drupal 7,Hook,我有一个视图可以显示新闻类型的所有内容 新闻有类似的领域: 内容=标题 调度程序=在上发布 在排序条件中:我希望使用两个选项对内容进行排序: 使用调度程序(发布时间=DESC) 还有邮寄日期 我希望使用scheduler对内容进行排序,当scheduler字段为空时,他使用post date进行排序 我已经创建了钩子视图 我有个问题 如何使用条件对字段进行排序如果publishon为空,则使用postdate进行排序 function custom_sort_views_query_alter(

我有一个视图可以显示新闻类型的所有内容 新闻有类似的领域:

内容=标题

调度程序=在上发布

在排序条件中:我希望使用两个选项对内容进行排序: 使用调度程序(发布时间=DESC) 还有邮寄日期

我希望使用scheduler对内容进行排序,当scheduler字段为空时,他使用post date进行排序 我已经创建了钩子视图 我有个问题 如何使用条件对字段进行排序如果publishon为空,则使用postdate进行排序

function custom_sort_views_query_alter(&$view, &$query) {


    if($view->name === 'articleview') {
        $view->query->add_where(1,'publish_on',  'NOT IN');
        $view->query->orderby[0]['field'] = "CASE WHEN publish_on IS NULL THEN created ELSE publish_on END";
        $view->query->orderby[0]['direction'] = "DESC";
        $view->query->orderby[1]['field'] = "created";
        $view->query->orderby[1]['direction'] = "DESC";
    }
}

如果我没弄错的话,你应该使用三元运算,比如
条件?value\u if\u true:value\u if\u false
放在要放置value\u if\u true或value\u if\u false的位置