我有一个显示我网站用户的视图。
如何从我的视图中删除匿名用户?
即。 35 作者 16 选民 0 匿名 0 user34
我尝试使用过滤器“User:Name!= Anonymous”,但它不起作用。
这是添加的过滤器的样子:“用户:名称不在未知”
感谢
答案 0 :(得分:1)
添加过滤器用户:名称,并将其设置为不是之一。键入Anonymous并等待表单自动完成以查找匿名用户。您的过滤器应该类似于用户:名称<>匿名强>
这是一个View的导出,列出除Anonymous之外的所有用户:
$view = new view;
$view->name = 'users';
$view->description = '';
$view->tag = '';
$view->view_php = '';
$view->base_table = 'users';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->override_option('fields', array(
'name' => array(
'label' => 'Name',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
'strip_tags' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'link_to_user' => 1,
'overwrite_anonymous' => 0,
'anonymous_text' => '',
'exclude' => 0,
'id' => 'name',
'table' => 'users',
'field' => 'name',
'relationship' => 'none',
),
));
$handler->override_option('filters', array(
'uid' => array(
'operator' => 'not in',
'value' => array(
'0' => 0,
),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'uid',
'table' => 'users',
'field' => 'uid',
'relationship' => 'none',
),
));
$handler->override_option('access', array(
'type' => 'none',
));
$handler->override_option('cache', array(
'type' => 'none',
));
答案 1 :(得分:1)
如果您的数据库中没有用户0,那么这就是问题的原因。要修复它,您需要运行两个查询。
INSERT INTO users (uid) VALUES (0);
UPDATE users SET uid = 0 WHERE uid = last_insert_id();
(这是针对MySQL)。
对于使用uid的空用户的特殊情况,您可以运行:
UPDATE users SET uid = 0 WHERE uid = 11;
那应该解决你的问题。可能是您的db版本不支持last_insert_id()
。