Osticket: 1.10 - 票单导出只输出前两行

创建于 2016-07-11  ·  60评论  ·  资料来源: osTicket/osTicket

当您在任何工单列表(已打开、已关闭、已拥有、已搜索)上单击“导出”时,生成的 CSV 仅包含前两行。
这也会影响任何搜索结果。

apache 日志显示:
PHP 警告:mysqli_result::close():无法在第 3076 行的 /site_1.10.rc3/include/class.orm.php 中获取 mysqli_result,引用: http://---------- --------/scp/tickets.php

osTicket 1.10.rc3
Centos 6.8 64b
mysql 5.1
php 5.6

谢谢你。

最有用的评论

我们仍在研究这个问题。 在我们永久修复它之前,您可以注释掉include/class.export.php 63行:

->options(QuerySet::OPT_NOCACHE)

...你应该再次导出所有这些。

所有60条评论

“仅包括前两行” @sistemasad实际上是指前三 (3) 行。
在我的测试安装中看到相同的行为。

1.10rc3
Win2012 R2 带 IIS8.5
PHP 5.6

你好,我也确认了同样的问题。

osTicket 1.10.rc3
Centos 6.8 64b
mysql 5.5.50-cll,libmysql - 5.1.73
php 5.6

你好,
我在这上面花了几分钟。
在 class.export.php 文件中,函数 dumpTickets,最后一条指令是返回调用 self::dumpQuery 函数。
dumpQuery 接受的最后一个参数是“$options=array”。 如果将此设置为 null,则票证将正确导出。 (其他三个参数是 sql、headers 和“csv”)

问题似乎出在此行(第四个参数)生成的选项中:

数组('修改' => 函数(&$record,$keys)使用($fields){
foreach ($fields as $k=>$f) {
if (($i = array_search($k, $keys)) !== false) {
$record[$i] = $f->export($f->to_php($record[$i]));
}
}
回声$记录
返回$记录;

请帮帮我,我的问题是一样的

警告:mysqli_result::close(): 无法在3089行上获取 mysqli_result in ....../include/class.orm.php

警告:mysqli_result::close(): 无法在3089行上获取 mysqli_result in ....../include/class.orm.php

thuc960,
我所做的是更改文件class.export.php上的返回调用,大约在函数函数 dumpTickets($sql, $how='csv')内的第 85 行:

_return self::dumpQuery($tickets,
大批(
'号码' => __('票号'),
'创建' => ('创建日期'),'cdata.subject' => __('Subject'),'user.name' => __('From'),'user.default_email.address' => __('From Email'),'cdata.:priority.priority_desc' => __('Priority'),'dept::getLocalName' => __('部门'),'topic::getName' => __('帮助主题'),'来源' => __('来源'),'status::getName' => ('当前状态'),
'lastupdate' => __('最后更新'),
'est_duedate' => __('截止日期'),
'isoverdue' => __('过期'),
'已回答' => __('已回答'),
'staff::getName' => __('Agent Assigned'),
'team::getName' => __('Team Assigned'),
'thread_count' => __('线程数'),
'attachment_count' => __('Attachment Count'),
) + $cdata,
$怎么,
数组('修改' => 函数(&$record,$keys)使用($fields){
foreach ($fields as $k=>$f) {
if (($i = array_search($k, $keys)) !== false) {
$record[$i] = $f->export($f->to_php($record[$i]));
}
}
回声$记录
返回$记录;
})
);_

有了这个(删除 $how 之后的最后一个参数):

_return self::dumpQuery($tickets,
大批(
'号码' => __('票号'),
'创建' => ('创建日期'),'cdata.subject' => __('Subject'),'user.name' => __('From'),'user.default_email.address' => __('From Email'),'cdata.:priority.priority_desc' => __('Priority'),'dept::getLocalName' => __('部门'),'topic::getName' => __('帮助主题'),'来源' => __('来源'),'status::getName' => ('当前状态'),
'lastupdate' => __('最后更新'),
'est_duedate' => __('截止日期'),
'isoverdue' => __('过期'),
'已回答' => __('已回答'),
'staff::getName' => __('Agent Assigned'),
'team::getName' => __('Team Assigned'),
'thread_count' => __('线程数'),
'attachment_count' => __('Attachment Count'),
) + $cdata,
$怎么,
空值
);_

但是,不知道为什么这有效 ;-)
问候。

我有同样的问题。 出口中只有2张票。
已经在 RC3 和 RC2 中,现在在稳定中?!

@JediKev @protich
我刚刚在我的 v1.10 (901e5ea) 测试服务器上确认了这个报告。

我尝试了上面的修复,它使它导出更多,但仍然导致日志中出现 PHP 错误:
[2016 年 11 月 4 日 14:49:25 UTC] PHP 警告:mysqli_result::free():无法在 185 行的 \support.110\include\mysqli.php 中获取 mysqli_result

我的猜测是,这是@greezybacon停止更改源以从 mysli 和 ORM 访问数据库的地方。

我已经使用@sistemasad推荐的方法修补了文件,并且我能够导出报告,但是通过这样做,我的自定义“位置”下拉字段有时会抓取数字表示,有时会抓取数字(逗号)位置。 有任何想法吗?

在 1.10 最终版本上有同样的问题。 建议的补丁似乎可以修复它。

同样的问题,谢谢@rayfoss

我尝试了上面的修复,但仍然导致日志中出现 PHP 错误:
PHP 警告:mysqli_result::free():无法在 \ 中获取 mysqli_result\include\mysqli.php 第 185 行

我将 free() 函数的调用(第 185 行的 mysqli.php)作为注释行,并且导出有效。

+1 我有同样的问题。

@HansLe - 你能澄清一下吗? 你解决问题了吗? 您是如何以及在何处调用 free() 函数的?

@tdefreest ,我的问题解决了。 我评论了这一行(第 185 条):
// $__db->unbuffered_result->free();
在模块 include\mssqli.php

根据@sistemasad 的建议,问题已为我解决。

3813

按照@sistemasad的解决方案评论这些行会重新启用导出但无法正确写入自定义字段...它们显示为数字...有没有人找到更好的解决方案?

我和@demenna 有同样的问题。 自定义字段现在导出为数字。

对我来说也是。自定义字段现在导出为数字。

@sistemasad注释掉的代码负责将原始数据转换为格式化数据。 该错误似乎是由此代码中某处的错误触发的。 因此,注释掉该代码可以防止错误,但也会禁用格式逻辑 - 这就是自定义字段导出为数字的原因。

我对@HansLe的补充的理解是,第一个修复并没有完全阻止每个人的问题,而且还需

我们仍然需要一个真正的修复来保留格式逻辑。

导出工作正常并导出每张票,然后在修改表单票详细信息以将一些自定义字段从使用基本字段添加到自定义列表后,由于导出中没有数据填充,我们现在在自定义字段中有数据,但只获得前 2 个导出中的行。 到目前为止,我们还没有成功地撤销我们的更改。 肯定有一些事情需要一个适当的解决方案,我同意上述不是一个解决方案,需要一个适当的解决方案。

大家好,对不起,多张票有点丢失,那么解决方案是什么?

目前还没有完整的解决方案,至少如果您希望自定义字段正确导出。 如果您对它们无法正确导出感到满意,那么 10 月 26 日的评论将为您指明正确的方向。

不确定这是否有帮助,但我遇到了同样的问题,这似乎完全是由调用 class.export.php 文件中 54 左右的自定义列的代码引起的。 此外,该线程中的其他解决方案都没有奏效,它们只是停止加载整个页面(对我而言)。

// 在 $sql 语句中添加自定义字段
$cdata = $fields = array();
foreach (TicketForm::getInstance()->getFields() as $f) {
// 忽略核心字段
if (in_array($f->get('name'), array('priority')))
继续;
// 忽略非数据字段
elseif (!$f->hasData() || $f->isPresentationOnly())
继续;

        $name = $f->get('name') ?: 'field_'.$f->get('id');
        $key = 'cdata.'.$name;
        $fields[$key] = $f;
        $cdata[$key] = $f->getLocal('label');

如果此代码的最后一部分被注释掉,则导出将按应有的方式工作,但会遗漏任何自定义字段。 除了让优先级列被调用两次(代替自定义字段列应该在的位置)之外,我尝试更改代码但绝对没有成功。

也许这些信息将有助于为更有经验的人指出一些事情。 如果有人可以给我任何反馈/建议,请随意。

此帮助收集了所有专家,但没有自定义字段,这不好:(

@protich @JediKev
有机会可以调查一下吗? 导出仍然没有正确获取自定义字段数据。 最初从 v 1.9 升级到 v 1.10 后发生:仅导出两个项目后,将票证导出到 csv 停止(尽管文件仍在创建)。 此线程中的修复防止自定义字段运行以获取键值对,从而导致一些手动连接信息。 这也发生在最新的 v 1.10.1 版本中。 任何帮助表示赞赏。

你好。

我这里也有同样的问题:
osTicket 版本 | v1.10.1 (9ae093d) — 最新
网络服务器软件 | Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.4.16
MySQL 版本 | 5.5.52
PHP 版本 | 5.4.16

我们有一个自定义列表,当我们使用其中一个自定义列表值搜索票证时,它们都正确地输出到 CSV 中,但是,如果我们不在此自定义列表中搜索某些内容,则只会在其中输出两行CSV。

删除自定义字段的修复导致输出所有行,但我们要求将自定义列表包含在 CSV 中。

我试图弄清楚发生了什么,但我一直无法找到解决方法,所以我希望能得到更多建议。

詹姆士。

我们仍在研究这个问题。 在我们永久修复它之前,您可以注释掉include/class.export.php 63行:

->options(QuerySet::OPT_NOCACHE)

...你应该再次导出所有这些。

你好。

感谢您提供此解决方案,它现在显示所有票证,但这意味着自定义列表字段中仅显示第一个列表项,但其他任何列表项均不显示,因此如果自定义列表中应该有“apple”和“pear”那张票只会显示给你“苹果”。

詹姆士。

好吧,我们需要修复此问题,因此请采取一种解决方法......也许不像我们喜欢的那样干净,但它有效。

这是完整的 dumptickets 功能(解决方法从第 83 行开始)

static function dumpTickets($sql, $how='csv') {
    // Add custom fields to the $sql statement
    $cdata = $fields = array();
    foreach (TicketForm::getInstance()->getFields() as $f) {
        // Ignore core fields
        if (in_array($f->get('name'), array('priority')))
            continue;
        // Ignore non-data fields
        elseif (!$f->hasData() || $f->isPresentationOnly())
            continue;

        $name = $f->get('name') ?: 'field_'.$f->get('id');
        $key = 'cdata.'.$name;
        $fields[$key] = $f;
        $cdata[$key] = $f->getLocal('label');
    }
    // Reset the $sql query
    $tickets = $sql->models()
        ->select_related('user', 'user__default_email', 'dept', 'staff',
            'team', 'staff', 'cdata', 'topic', 'status', 'cdata__:priority')
        ->options(QuerySet::OPT_NOCACHE)
        ->annotate(array(
            'collab_count' => TicketThread::objects()
                ->filter(array('ticket__ticket_id' => new SqlField('ticket_id', 1)))
                ->aggregate(array('count' => SqlAggregate::COUNT('collaborators__id'))),
            'attachment_count' => TicketThread::objects()
                ->filter(array('ticket__ticket_id' => new SqlField('ticket_id', 1)))
                ->filter(array('entries__attachments__inline' => 0))
                ->aggregate(array('count' => SqlAggregate::COUNT('entries__attachments__id'))),
            'thread_count' => TicketThread::objects()
                ->filter(array('ticket__ticket_id' => new SqlField('ticket_id', 1)))
                ->exclude(array('entries__flags__hasbit' => ThreadEntry::FLAG_HIDDEN))
                ->aggregate(array('count' => SqlAggregate::COUNT('entries__id'))),
        ));

    // Fetch staff information
    // FIXME: Adjust Staff model so it doesn't do extra queries
    foreach (Staff::objects() as $S)
        $S->get('junk');

    //custom list
    $sql = 'SELECT type, name FROM ost_form_field WHERE type like "list%" ';  //fields
    $query = db_query($sql);
    $type_lists = array();
    while($row = mysqli_fetch_assoc($query)){
      $type_lists[] = $row;
    }

    $list = array();
    foreach($type_lists as $type_list){
      $list_id = intval(substr($type_list['type'], 5));

      $sql = 'SELECT id, value FROM ost_list_items WHERE list_id = '.$list_id; //list elements
      $query = db_query($sql);
      while($row = mysqli_fetch_assoc($query)){
        $list[$type_list['name']][$row['id']] = $row['value'];
      }
    }

    $cambio = array('modify' => function(&$record, $keys) use ($fields, $list) {
      $fields_array = array();
      foreach($keys as $key => $row){
        if(strpos($row, 'cdata.') === 0){ 
          $fields_array[$key] = substr($row, 6);
          if(isset($list[$fields_array[$key]]))
            $fields_list[] = $key;
        }
      }
      foreach ($fields as $k=>$f) {
        if (($i = array_search($k, $keys)) !== false) {
          if(in_array($i, $fields_list)){
            $record[$i] = $list[$fields_array[$i]][intval($record[$i])];
          }else{
            $record[$i] = $f->export($f->to_php($record[$i]));
          }
        }
      }
      return $record;
    });

我希望这对其他人有用......

Razarate 的解决方案对我来说就像一个魅力 - 只需稍作修改。 我认为 razarate 忘记包含修订后的 dumptickets 功能的以下重要部分:

 return self::dumpQuery($tickets,
        array(
            'number' =>         __('Ticket Number'),
            'created' =>        __('Date Created'),
            'cdata.subject' =>  __('Subject'),
            'user.name' =>      __('From'),
            'user.default_email.address' => __('From Email'),
            'cdata.:priority.priority_desc' => __('Priority'),
            'dept::getLocalName' => __('Department'),
            'topic::getName' => __('Help Topic'),
            'source' =>         __('Source'),
            'status::getName' =>__('Current Status'),
            'lastupdate' =>     __('Last Updated'),
            'est_duedate' =>    __('Due Date'),
            'isoverdue' =>      __('Overdue'),
            'isanswered' =>     __('Answered'),
            'staff::getName' => __('Agent Assigned'),
            'team::getName' =>  __('Team Assigned'),
            'thread_count' =>   __('Thread Count'),
            'attachment_count' => __('Attachment Count'),
        ) + $cdata,
        $how,
        $cambio
        );

嗨,有什么消息会在 v1.10.1 中修复这个问题吗?

1.10.1 已经出来了......所以它不会在 1.10.1 中修复。
我想它可能会在 1.11 发布时得到修复。

你好,
@ntozier我可以找到经过修改的 class.export.php 吗?
非常感谢!

@elma1003嗯?

我已经通过评论修补了 1.10
//->options(QuerySet::OPT_NOCACHE)
此后导出工作正常

现在我已经安装了 v1.10.1 (9ae093d)
导出不行,只有3行。
我正在尝试修补,但不行,没有任何效果
我已经从https://github.com/osTicket/osTicket/releases/tag/v1.10.2下载了 1.10.2
但 class.export.php 与 1.10 相同
请帮忙....

@elma1003您是否尝试过使用 Razarate 的解决方案?

@elma1003 @kclubok

即将发布的 v1.11.0rc-1 版本(即将发布)中包含对此的修复。

@elma1003

知道你的实例发生了什么,因为我刚刚在我的 v1.10.1 实例上注释了该行,并且它正在正确导出所有票证。

干杯。

有没有人让导出 - 包括自定义字段 - 工作? 我似乎无法弄清楚。

我尝试了 razarate 的解决方案,包括 kclubok 的反馈,并尝试了 class.export.php 文件的1.11.x 版本,但它不包括自定义字段。

也许一位做过管理的好心人可以在这里发布修改后的 class.export.php 文件?

这个修复曾经对我有用。 突然,它不再起作用了。 不知道发生了什么?

@绝地凯夫

您能否指出解决此问题的 v.11.0rc-1 提交? 这会很有帮助!

我希望修复不是简单地注释掉该行。 如前所述,如果有自定义列表字段,则不会产生正确的行为。

使用 evertvh 定位的 class.export.php 文件仍然存在此问题。

我已经尝试了在这个问题上列出的各种修复,但没有任何乐趣。

我有一个修改后的 csv 格式,其中添加了一个附加列以显示每个用户所属的“组织”,如 osticket 论坛中所述 - http://osticket.com/forum/discussion/92606/customising-ticket-csv-导出正确#最新

@Zixt

谢谢,但我们实际上已经在v1.11.0rc-1解决了这些问题(很快就会发布;希望在周一之前发布)。 除了解决原始问题外,它还增加了自定义要导出的字段的功能。

干杯。

埃迪杰迪凯夫

啊好吧 - 不错的。

干杯。

@JediKev

我已经更新到我们安装的最新版本,但是我在根据我的规范自定义队列时遇到了一些问题?

如果这不是问的正确地方,请道歉!

我设法使用自定义字段将“组织”正确添加到队列页面,并将主数据源设置为“用户/组织/名称”

但是 - 我无法将自定义字段添加到“导出”选项卡,并且只能从一组预定义的字段标题中进行选择。

有什么我想念的吗?

@Zixt

这不是报告您的问题的地方。 您将打开自己的问题并填写新问题模板。 话虽如此,我将继续在下面发布我的回复,以便您至少有一个快速的答案。 👍

_免责声明:以下仅适用于v1.11.0rc-1 _

目前,您无法将用户字段、组织字段等添加到自定义队列导出,因为此功能仅处于阶段 1(或版本 1)并且是有限的。 我_相信_它会随着时间的推移越来越多地扩展到允许各种领域。 您现在可以在Admin Panel > Settings > Tickets > Queues > 单击 queue name > Export > Add Other Field下看到可以添加/重新排列的所有

_(对不起,我之前回答错了;我以为新的导出器可以选择添加这些类型的字段,但事实证明它没有。至少现在导出是可自定义的!)_

** 边注

您可以随时将代理面板导出用户的组织名称导出在底部。


干杯。

从 1.10.1 更新后,在 1.10.4 中相同的“1.10 - 工单列表导出仅输出前两行”

这可能是关于它的:
[选择 A3。 staff_id AS lock__staff_id ,A1。 staff_id AS staff_id ,A1。 isoverdue AS isoverdue ,A1。 team_id AS team_id ,A1。 ticket_id AS ticket_id ,A1。 number AS number ,A4。 subject AS cdata__subject ,A6。 address AS user__default_email__address ,A1。 source AS source ,A7。 priority_color AS cdata__:priority__priority_color ,A7。 priority_desc AS cdata__:priority__priority_desc ,A1。 status_id AS status_id ,A8。 name AS status__name ,A8。 state AS status__state ,A1。 dept_id AS dept_id ,B0。 name AS dept__name ,A5。 name AS user__name ,A1。 lastupdate AS lastupdate ,A1。 isanswered AS isanswered ,B1。 firstname AS staff__firstname ,B1。 lastname AS staff__lastname ,B2。 name AS team__name , (SELECT COUNT(R0. id ) AS count FROM ost_thread Q7 JOIN ost_ticket Q8 ON (Q7. object_type = 'T' AND Q7. object_id = Q8. ticket_id ) LEFT JOIN ost_thread_collaborator R0 ON (Q7. id = R0. thread_id ) WHERE Q8. ticket_id = A1. ticket_id ) AS collab_count, (SELECT COUNT(R1. id ) AS count FROM ost_thread Q7 JOIN ost_ticket Q8 ON (Q7. object_type = 'T' AND Q7. object_id = Q8. ticket_id ) LEFT JOIN ost_thread_entry R0 ON (Q7. id = R0. thread_id ) LEFT JOIN ost_attachment R1 ON (R1. type = 'H' AND R0. id = R1. object_id ) WHERE Q8. ticket_id = A1. ticket_id AND R1. inline = 0) AS attachment_count, (SELECT COUNT(R0. id ) AS count FROM ost_thread Q7 JOIN ost_ticket Q8 ON (Q7. object_type = 'T' AND Q7. object_id = Q8. ticket_id ) LEFT JOIN ost_thread_entry R0 ON (Q7. id = R0. thread_id ) WHERE Q8. ticket_id = A1. ticket_id AND NOT R0. flags & 4 != 0) AS thread_count FROM ost_ticket A1 JOIN (SELECT Q7. ticket_id FROM ost_ticket Q7 JOIN ost_ticket_status Q8 ON (Q7. status_id = Q8. id ) WHERE Q8. state state = 'open' AND (Q7. staff_id = 2 OR Q7. team_id IN (1))) OR Q7. dept_id IN ('1', '2', '3')) 按 Q7 订购。 ASC LIMIT 25) A2 LEFT JOIN `ost_lock` A3 ON (A1.`lock_id` = A3.`lock_id` AND A3.`expire` > NOW()) LEFT JOIN `ost_ticket__cdata` A4 ON (A1.`ticket_id` = A4.`ticket_id`) JOIN `ost_user` A5 ON (A1.`user_id` = A5.`id`) LEFT JOIN `ost_user_email` A6 ON (A5.`default_email_id` = A6.`id`) LEFT JOIN `ost_ticket_priority` A7 ON (A4.`priority` = A7.`priority_id`) JOIN `ost_ticket_status` A8 ON (A1.`status_id` = A8.`id`) JOIN `ost_department` B0 ON (A1.`dept_id` = B0.`id`) LEFT JOIN `ost_staff` B1 ON (A1.`staff_id` = B1.`staff_id`) LEFT JOIN `ost_team` B2 ON (A1.`team_id` = B2.`team_id`) WHERE A1.`ticket_id` = A2.`ticket_id` GROUP BY A3.`staff_id`, A1.`staff_id`, A1.`isoverdue`, A1.`team_id`, A1.`ticket_id`, A1.`number`, A4.`subject`, A6.`address`, A1.`source`, A7.`priority_color`, A7.`priority_desc`, A1.`status_id`, A8.`name`, A8.`state`, A1.`dept_id`, B0.`name`, A5.`name`, A1.`lastupdate`, A1.`isanswered`, B1.`firstname`, B1.`lastname`, B2.`name` ORDER BY A1. ASC]

未知列“Q7”。 在“订单条款”中



---- 回溯 ----

0 (root)/include/mysqli.php(204): osTicket->logDBError('DB Error #1054', '[SELECT A3.`sta...')

1 (root)/include/class.orm.php(3136): db_query('SELECT A3.`staf...', true, true)

2 (root)/include/class.orm.php(3183): MySqlExecutor->execute()

3 (root)/include/class.orm.php(1868): MySqlExecutor->getArray()

4 (root)/include/class.orm.php(1818): HashArrayIterator->{closure}()

5 (root)/include/class.orm.php(1797): CallbackSimpleIterator->next()

6 (root)/include/class.orm.php(1806): CallbackSimpleIterator->rewind()

7 (root)/include/class.orm.php(1463): CallbackSimpleIterator->valid()

8 (root)/include/class.orm.php(1480): CachedResultSet->fillTo(9223372036854775807)

9 (root)/include/class.orm.php(1489): CachedResultSet->asArray()

10 (root)/include/staff/tickets.inc.php(570): CachedResultSet->getIterator()

11 (root)/scp/tickets.php(495): require_once('(root)/in...')

12 {主要}

v1.11.0-rc1 仅带标题导出。

1.10 升级到 1.11rc1

仪表板导出有效,票证导出:在http://xxxxxxxx.xxxxxxxx.com/helpdesk/scp/tickets.php?a=export&queue=adhoc ,ikDr5jdnAc 找不到文件。

1.10.4 已经有这行,同样的问题 - csv 标题中只有两行和一张票

osTicket 版本 | v1.10.4
PHP 版本 | 5.6.37

查看您的建议,但我继续遇到同样的问题,当导出状态为“已关闭”的票证报告时,文件只显示 1 张票证。

在 1.10.1 中工作
真正的阻滞剂
我知道每个人都在 1.11 上,但除非下个月 1.11 稳定版出来,否则请给我们解决这个问题的线索

@lavdnone @JediKev在此线程中发布的修复程序适用于 1.10.0 和 1.10.4。
https://github.com/osTicket/osTicket/issues/3264#issuecomment -330262555

谢谢,不知道我是怎么错过的,#3264 成功了

@lavdnone非常欢迎。 好好休息一天吧! :)

我也遇到了不是所有票都显示的问题。
在文件中使用上述解决方案对我不起作用。 使用时总是出现php错误

有人可以发布一个完整的 class.export.php 吗?

@奥坎森

你注释掉那一行,它会给你一个 php 错误? 听起来你做错了。 你所要做的就是注释掉一行,它就可以工作了。
第3264章(评论)

干杯。

我在 _include/class.export.php_ 中注释掉了第 58 行,正如该线程所推荐的那样,现在我可以将所有票证导出为 .csv 格式。
//->options(QuerySet::OPT_NOCACHE)

Ubuntu 16 上的 OSTicket v1.10.4

我在 _include/class.export.php_ 中注释掉了第 58 行,正如该线程所推荐的那样,
我现在可以将所有门票导出为 .csv 格式。
//->options(QuerySet::OPT_NOCACHE)

是的,
它似乎也在我的文件中工作,代码的一部分是第 63 行,但会占用内存......我可以导出小票列表,但是如果我使用包含数十万票的列表,它不可避免地会以错误结束:-(

_PHP 致命错误:第 3146 行的 include/class.orm.php 中允许的内存大小为 536870912 字节已用尽(尝试分配 32 字节)_

我将限制更改为 512MB,但我停止并恢复了旧限制,以避免出现一些更严重的问题。

注意:我还尝试了@JediKev发布的其他修复程序,但无论如何,如果列表很大,它需要太多内存。

73 年代,
阿图罗。

@iw0der

我们对即将推出的1.12.x系列进行了修复,以解决大型数据集的票证导出超时问题。 敬请期待。

干杯。

此页面是否有帮助?
0 / 5 - 0 等级