我已经做了一个网上商店的衣服,可能我需要制作一些标签系统。CakePHP可搜索标签
整个应用程序基于CakePHP,我需要一个管理所有产品的想法,类似于eBay。
例如标记每个产品与它的price
,type
,producer
,size
,status
再举例来说,其中一些应该是多搜索,能够搜索与项目:$ 10之间价格和20美元,大小为S或M
我已经做了一个网上商店的衣服,可能我需要制作一些标签系统。CakePHP可搜索标签
整个应用程序基于CakePHP,我需要一个管理所有产品的想法,类似于eBay。
例如标记每个产品与它的price
,type
,producer
,size
,status
再举例来说,其中一些应该是多搜索,能够搜索与项目:$ 10之间价格和20美元,大小为S或M
有一个属性表,它基本上充当键/值存储并将这些属性分配给每个产品。
属性本身可以有一个attribute_options表,您可以从中读取属性的不同可用大小。
然后,您只需搜索属性表和产品表。
从你所描述的,你不应该需要任何额外的表。只需将它们添加为产品表中的字段,然后根据该字段进行查询。它会更快,更逻辑地布置......等等。
你的例子可以像下面一样搜索。 (这似乎有点矫枉过正,反而会使任何未来的发现非常简单,并且遵循脂肪控制器,瘦模特的口头禅:已经在
//ProductsController
public function whatever() {
$opts = array(
'price_high' => 10,
'price_low' => 20,
'sizes' => array('S', 'M')
);
$this->Product->getProducts($opts);
}
//Product Model
public function getProduts($opts = null) {
//initialize variables
$params = array('conditions'=>array());
//size(s)
if(!empty($opts['sizes']) {
array_push($params['conditions'], array('Product.size'=>$opts['sizes']));
}
//price(s)
if(!empty($opts['price_high']) {
array_push($params['conditions'], array('Product.price <='=>$opts['price_high']));
}
if(!empty($opts['price_low']) {
array_push($params['conditions'], array('Product.price >='=>$opts['price_low']));
}
return $this->find('all', $params);
}
这些领域没有真正听起来像标签对我来说,这么多的领域产品表(或将被添加),它们可以使用分页系统轻松分类。 – jeremyharris 2012-03-28 14:06:26