1

我使用 Symfony 2。到目前为止,我有 2 个捆绑包。第一个包称为 UserBundle,是使用 FosUserBundle 构建的。第二个包称为 GeoBundle,包含一个名为 France 的实体,其表包含近 40.000 条记录。每条记录指的是一个带有邮政编码、区域代码的城市......基本上我在我的用户注册表单中使用这个实体,以便用户可以从列表中选择一个合适的城市。顺便说一句,我使用实体字段类型来做到这一点。

我的问题是,表中只有几条记录一切正常,但几乎有 40.000 条记录,我的表单所在的页面甚至没有打开。我已经将 php.ini 中的内存扩展至 256M 或更多,但页面仍未打开。

所以我的问题很简单。用这么多记录填充选择字段的最佳解决方案是什么?我当然愿意接受其他解决方案。先感谢您。干杯。马克

4

3 回答 3

2

您可能最好使用自动完成字段。您可以在 Google 上找到大量解决方案。或者尝试像https://github.com/shtumi/ShtumiUsefulBundle这样的捆绑包

于 2013-01-15T16:17:20.090 回答
1

简单地不要加载完整列表,这对您的服务器、带宽和客户端所需的内存都是不利的(如果它是移动浏览器,算了吧!)

我建议使用jQuery UI Autocomplete,这是一个 jQuery 插件,可以通过 Ajax 从您的服务器加载所需的元素,因此您不必加载孔的东西。它也经过了很好的测试并且易于实施。

http://jqueryui.com/autocomplete/#remote-jsonp

于 2013-01-15T16:18:51.120 回答
1

尝试使用这个 Symfony2 包。

https://github.com/genemu/GenemuFormBundle/blob/master/Resources/doc/jquery/autocomplete/text.md

这在 Symfony2 中非常有帮助。它将节省您的时间并查看其其他扩展

于 2013-01-16T07:40:27.880 回答