我已經做了一個網上商店的衣服,可能我需要製作一些標籤系統。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