【问题标题】:What is the correct way to programmatically delete a joomla user and their data?以编程方式删除 joomla 用户及其数据的正确方法是什么?
【发布时间】:2019-11-20 06:30:36
【问题描述】:

我想从 Joomla 3.x 数据库中按 id 删除一组用户。我试图从文档中弄清楚这是否可行,而无需为每个数据库表编写自己的 SQL。

类似于以下伪代码:

 delete from #_users where ( `lastvisitDate` < NOW() - INTERVAL 1 MONTH  ) AND ( #__user_usergroup_map.group_id = 18 );
 delete from #_user_usergroup_map where user_id not in (select id from #_users);
 delete from #_user_profiles where user_id not in (select id from #_users);

我熟悉查询构建器,请参阅:https://docs.joomla.org/Inserting,_Updating_and_Removing_data_using_JDatabase/en

但如果框架中已经有代码删除用户的详细信息,那么我不希望重新发明轮子。

文档有这个:https://api.joomla.org/cms-3/classes/Joomla.CMS.User.User.html 但似乎没有参数传递给用户->删除?

我假设可以这样做,因为可以在管理员后端用户列表中勾选框并删除多个用户。

我已经使用 Joomla 几年了(从 1.5 开始),但说实话,我一直在努力处理 API 文档。

任何帮助将不胜感激。

【问题讨论】:

标签: joomla joomla3.0


【解决方案1】:

该函数在 com_users 的模型中

/administrator/components/com_users/models/user.php

你可以像这样从控制器加载这个模型:

$model = parent::getModel($name = 'User', $prefix = 'UsersModel', $config = array('ignore_request' => true));

然后

$model->delete($pks); 

其中$pks 是要删除的用户ID 数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 2013-10-16
    • 2015-07-27
    • 2021-02-26
    • 2013-01-04
    相关资源
    最近更新 更多