我有一个关于CakePHP的非常有趣的问题。我有一个客户,目前在eBay上销售产品,并希望开始在自己的网站上销售产品以及。那么,将会有两个不同的销售渠道:(1) eBay和(2)网站。
然而,他们确实希望为客户提供无缝的网站体验。基本上,他们希望他们当前的eBay站点是他们当前网站内的类别,并且他们当前的eBay拍卖项目在他们的网站上是可搜索的。
一个简单的CakePHP网站应该有两个表: products和categories,简单的表关系是"products belongsTo categories“和"categories hasMany products”。那么我如何添加eBay类别和产品呢?基本上,我希望http://site/products/index返回products表和eBay上的所有产品的列表。我希望http://site/categories/index返回categories表中所有已定义类别的列表,以及eBay上中列出的类别项目。
eBay有一个非常好的、几乎是实时的请求查询API,所以我一直在考虑这样做的一个选项,但我想知道是否有更好的方法……我不认为这个选项会在PaginatorComponent中很好地工作。
方法:(1)在beforeFind中,捕获请求参数并保存到afterFind中的持久化变量(2),根据请求参数向eBay接口发起请求,然后手动将结果添加到$results数组中。
同样,我认为这将适用于基本的查找操作,但我不确定这是否适用于分页,因为我不确定如何处理,比方说,20个项目的页面限制(例如,当数据库中只有18个项目在页面1上时,我如何处理页面2,现在在页面2上,我需要从19开始,而不是从数据库中的21开始?)
这里有没有我忽略的CakePHP语法,或者我只是开始为所有这些可能性编写代码?
我在CakePHP 2.6.0平台上编码。
非常感谢你的帮助!
发布于 2015-02-23 17:09:34
一种可能的方法是从每个数据源读取所有产品,在内存中对它们进行排序,并从那里分页。当然,产品的数量在这里扮演着重要的角色。
第二种方法是,如果产品的数量变化不太频繁,将涉及一个后台进程,从eBay检索它们的ID和最重要的数据,并将它们写入公共的Product表中,标记所创建的行。然后,Paginator可以显示您的结果,但其他快速变化的数据可以在组成页面时从eBay中为标记的产品动态检索。
https://stackoverflow.com/questions/28642273
复制相似问题