0

こんにちは私はyii開発の初心者です。私は3つのテーブルを持っています。テーブルA、AB、Bここで、Aは1つのテーブル、ABはテーブルAとBのFKを含む中間テーブル、Bは別のテーブルです。モデルにはリレーション関数があります。

/**
 * @return array relational rules.
 */
public function relations()
{
    return array(
        "AB"=>array(self::MANY_MANY,"AB(my model)","AB(A_id,B_id)"),
    );
}

これは正常に機能しますが、関係ABを事前定義された方法でソートするために、ordという名前の順序フィールドとして使用される順序フィールドをテーブルABに配置したいと思います。

誰かがそのようなことを試したことがありますか、またはこれを行う方法について何か提案がありますか?

4

1 に答える 1

0

すみません、あなたの質問を誤解しました。これを行う最も簡単な方法は、複雑な SQL クエリを作成できる CDbCriteria (http://www.yiiframework.com/doc/api/1.1/CDbCriteria) を使用することです。

正確な状況はわかりませんが、あなたの解決策は次のようになります

$criteria = new CDbCriteria(); 
$criteria->select = "x"; 
$criteria->alias = "tableA"; // creates a "...From table_A AS tableA..."
$criteria->join = "LEFT JOIN A_B AS tableAB ON tableA.A=tableAB.A"; 
$models = YourModel::model()->findAll($criteria);

Web はこのようなものでいっぱいです。単純に google mysql join または yii join です。

それが役立つことを願っています

于 2012-12-06T16:37:52.820 に答える