CakePHP для поиска тегов - PullRequest
1 голос
/ 28 марта 2012

Я сделал интернет-магазин одежды и, возможно, мне нужно создать систему тегов.

Все приложение построено на CakePHP, и мне нужна идея для управления всеми продуктами, что-то похожее на ebay.

Например, чтобы пометить каждый продукт с помощью price, type, producer, size, status

И, например, некоторые из них должны иметь возможность многократного поиска, чтобы иметь возможность искать предмет по: цене от 10 до 20 долларов, с размером S или M

Ответы [ 2 ]

0 голосов
/ 28 марта 2012

Из того, что вы описываете, вам не нужно никаких дополнительных таблиц. Просто добавьте их в виде полей в таблице продуктов и выполните запрос на основе этого. Это будет быстрее, более логично выложено ... и т.д.

Ваш пример будет доступен для поиска, как показано ниже. (Кажется, это немного излишне, но сделает любые будущие находки действительно простыми и следует за толстым контроллером, тощей моделью мантры:

//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);
}
0 голосов
/ 28 марта 2012

Иметь таблицу атрибутов, которая в основном будет действовать как хранилище ключей / значений, и назначать эти атрибуты каждому продукту.

У самих атрибутов может быть таблица attribute_options, из которой можно прочитать различные доступные размеры для атрибута..

Затем вам нужно будет просто найти таблицу атрибутов и таблицу продуктов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...