将OctoberCMS中的用户列表导出为CSV

问题描述 投票:1回答:1

我已经阅读了有关在OctoberCMS中使用导入和导出功能的教程。

但是使用rainlab-users插件,这些准则不起作用。我也尝试安装插件vojtasvoboda-userimportexport,但它会导出所有用户,而不是已过滤的用户。

class Users extends \RainLab\User\Controllers\Users
{

    public $implement = [
        'Backend.Behaviors.FormController',
        'Backend.Behaviors.ListController',
        'Backend.Behaviors.ImportExportController',
    ];
....
}

当我将此代码添加到Users.php控制器时,出现错误:

Class ..... \ User \ Controllers \ Users已经通过Backend \ Behaviors \ ImportExportController进行了扩展。

[当我尝试导出上面没有代码的代码时,出现错误:

调用未定义的方法October \ Rain \ Database \ QueryBuilder :: export()

php octobercms octobercms-plugins
1个回答
0
投票

所以我实际上以与控制器不同的方式解决了这种问题。我制作了一个分离的前端管理系统。因此,网站所有者无需登录后端。哪一个对我的信任为用户节省了无数麻烦和错误,而这些麻烦和错误让用户感到不满意。所以这是我如何解决这个问题:

  1. [由Sozonov Alexey安装插件Content Type
  2. 制作一个CMS页面,并确保该URL末尾具有.csv。您应该看到内容类型插件在其中添加了内容类型标签页面设置。您可以不选择html选项,而是添加text / csv作为您自己的文本。

    enter image description here

  3. 这里是有关页面模板外观的示例。

    {% spaceless %}
    NAME,EMAIL
    {% for row in csv %}
    {{ row.name }},{{ row.email }}
    {% endfor %}
    {% endspaceless %}
    
  4. “ CMS页面PHP代码”部分的外观如下。这可以让您对列表进行查询并根据需要进行过滤。然后,您可以检查客户端是登录到后端还是以用户身份登录,并且可能是管理员或主持人。当然,您可以制作一个插件和组件,然后将其附加到此页面。

    use Rainlab\User\Models\User;
    
    function onStart() {
        $users = User::all();
        $this['csv'] = $users;
    }
    

旁注,我已经使用了相同的技术来创建动态的CSS,JavaScript或rss feed。我也使用此网站地图。

© www.soinside.com 2019 - 2024. All rights reserved.