2012-03-22 7 views
3

私はリチウムの関係で少し曇っています。私はLithiumを使ってタグクラウドを作成しようとしていますが、HABTM関係を使用せずにこれを行う方法がわかりません。 私はMySQL、btwを使用しています。HABTMなしでLtihiumのタグクラウドをコーディングする方法は?

提案がありますか?

:サンプルコードを追加するために編集:ここでは

は、私が今働いている何かの非常に単純化したバージョンです。 私はItems,TagsおよびItemsTagsです。

<?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') 
    )); 
?> 

あなたはSQLを使用している場合、私はに見てとる$items

+0

例を挙げてください。 =)私は助けたいが問題を理解できない。 – Tomen

+0

ありがとう。オリジナルの投稿を編集して自分のモデルを表示しました。 – Housni

+0

私はまだこれを理解しようとしています。誰かが私を正しい方向に向けることができればそれは感謝します。 – Housni

答えて

1

経由Tagsデータにアクセスできるように、どのように私は私のコードを変更することができます。参加する例についてHow do I perform joins with lithium models? を。

もう1つの方法は、独自のhabtmクエリを使用している "結合"モデルを設計することです。そこにいくつかのcakePHPの例があります。

または、埋め込まれたドキュメントでnoSQLを使用する。

+0

経由で尋ねてみることをお勧めしますお返事ありがとうございます。 私はSQLを使用しています。私はそれを言及すべきだった。元の投稿を編集します。 find()とinvoke joinの使い方を知っています。モデル内でHABTMを実装する方法がわかりません。例えば、私はHABTMをシミュレートするために、hasOne、hasMany、belongsToなどを使う方法を知らないでしょう。 私はGoogleになり、Cakeのやり方を探します。それは少し助けるかもしれない。 – Housni

+0

Users、UsersToCities、Citiesの3つのモデル=> 2つの「通常の」モデルと1つのnからmの「モデル」を作成できます。 その後、いつものように関連付ける。 – dgAlien

+0

しかし、ユーザーを反復しながらCitiesデータを取得するにはどうすればよいですか? – Housni

関連する問題