我对锂的关系有些迷惑。我正在尝试使用Lithium创建标签云,但是我不确定在不使用HABTM关系的情况下如何做到这一点。
我正在使用MySQL,顺便说一句。

有什么建议?

:编辑以添加示例代码:

这是我正在处理的内容的非常简化的版本。
我有ItemsTagsItemsTags

<?php

namespace app\models;

class Tags extends \app\extensions\data\Model {

    public $hasMany   = array('ItemsTags');

    // {{{ schema
    protected $_schema = array(
        'id'       => array('type' => 'integer', 'key' => 'primary'),
        'title'    => array('type' => 'string'),
        'created'  => array('type' => 'integer'),
        'modified' => array('type' => 'integer')
    );
    // }}}
}

?>



<?php

namespace app\models;

class Items extends \app\extensions\data\Model {

    public $hasMany   = array('ItemsTags');

    // {{{ schema
    protected $_schema = array(
        'id'          => array('type' => 'integer', 'key' => 'primary'),
        'title'       => array('type' => 'string'),
        'sku'         => array('type' => 'string'),
        'price'       => array('type' => 'float'),
        'created'     => array('type' => 'integer'),
        'modified'    => array('type' => 'integer')
    );
    // }}}
}

?>



<?php

namespace app\models;

class ItemsTags extends \app\extensions\data\Model {

    public $belongsTo = array('Tags', 'Items');

    // {{{ schema
    protected $_schema = array(
        'id'       => array('type' => 'integer', 'key' => 'primary'),
        'tag_id'   => array('type' => 'integer'),
        'item_id'  => array('type' => 'integer'),
        'created'  => array('type' => 'integer'),
        'modified' => array('type' => 'integer')
    );
    // }}}
}
?>



<?php
    $items = Items::find('first', array(
        'conditions' => array('myField' => 'myCondition')
    ));
?>


如何更改代码,以便可以通过Tags访问$items数据

最佳答案

如果使用SQL,请查看:How do I perform joins with lithium models?
用于连接示例。

另一种方法可能是设计使用自己的habtm查询的“ Join”模型。这里有一些cakePHP示例,应该很容易适应。

或者,将noSQL与嵌入式文档一起使用。

关于has-and-belongs-to-many - 没有HABTM的情况下如何在Lithium中编码标签云?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9830194/

10-11 01:52