我已经阅读了有关在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()
所以我实际上以与控制器不同的方式解决了这种问题。我制作了一个分离的前端管理系统。因此,网站所有者无需登录后端。哪一个对我的信任为用户节省了无数麻烦和错误,而这些麻烦和错误让用户感到不满意。所以这是我如何解决这个问题:
制作一个CMS页面,并确保该URL末尾具有.csv。您应该看到内容类型插件在其中添加了内容类型标签页面设置。您可以不选择html选项,而是添加text / csv作为您自己的文本。
这里是有关页面模板外观的示例。
{% spaceless %}
NAME,EMAIL
{% for row in csv %}
{{ row.name }},{{ row.email }}
{% endfor %}
{% endspaceless %}
“ CMS页面PHP代码”部分的外观如下。这可以让您对列表进行查询并根据需要进行过滤。然后,您可以检查客户端是登录到后端还是以用户身份登录,并且可能是管理员或主持人。当然,您可以制作一个插件和组件,然后将其附加到此页面。
use Rainlab\User\Models\User;
function onStart() {
$users = User::all();
$this['csv'] = $users;
}
旁注,我已经使用了相同的技术来创建动态的CSS,JavaScript或rss feed。我也使用此网站地图。