【问题标题】:PyroCMS Relationship Field Memory OverflowPyroCMS 关系字段内存溢出
【发布时间】:2013-10-02 19:50:12
【问题描述】:

我在相关表中有一个包含 16,000 个可能值的关系字段。

例如,我有一个与我的 pet_owners 流有一种关系的宠物流。有 16,000 个可能的宠物主人。

每当我尝试创建或编辑“宠物”时,都会收到内存不足的错误消息。当我尝试添加与宠物流相关的“宠物列表”类型的页面时,也会发生这种情况。

基本上,只要它应该显示宠物主人的下拉列表,我的应用程序就会崩溃。我该如何解决这个问题?

查看截图和堆栈溢出问题:

【问题讨论】:

  • 等等,你想要一个包含 16,000 个选项的下拉菜单??
  • 不,不同的东西,比如搜索框。这是所有核心 PyroCMS 代码。我认为他们将能够处理具有相当数量条目的相关表。我希望能找到更新核心功能的最简单方法的解决方法或提示。
  • 是的,类似autocomplete 会更好,如下所述。 (你希望每个人都能看到系统中其他人的名字吗?可能存在安全隐患。)无论如何,我认为问题不在于行数很多,但你是试图渲染这么多行。通常有某种类型的分页或其他机制(例如自动完成)来处理渲染大型数据集。
  • 只有管理员有权插入记录,所以我不介意是否显示所有名称。我将看看可能使用不同的渲染技术。 ty

标签: php codeigniter stream relationship pyrocms


【解决方案1】:

只是不要显示下拉框,它会尝试加载您的所有数据。 16,000 个选项。

我建议您在键入时使用带有自动填充功能的文本字段,这可以通过 jQuery/AJAX 完成,并且会限制您的数据请求。这将在键入时搜索以字母 s 开头的所有内容,依此类推,直到您获得用户搜索的结果。

【讨论】:

    【解决方案2】:

    现在我通过基于关系创建一个插件字段类型“大关系”来解决它。然后在 db SELECT 查询中,我只添加了 id 和 $titleField。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-30
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多