2

次のトピックで本当に問題があります。

私は Yii フレームワークを使用してソーシャル ネットワークを作成しています。ユーザーごとに、ユーザー ID で始まる一連の DB テーブルを生成しているため、DB テーブルは 13_my_firends のようになります。

要点は、これを行うことで、gii ツールを使用して特定のモデルを生成することができず、内部結合を回避するためにいくつかの関係を作成するために、このテーブルにいくつかのモデルが本当に必要であるため、問題は次のようになると思います。

-> php または Yii コードを使用してモデル ファイルを作成し、そのコード内で "public function relationship(){}" メソッドを変更して関係を追加するにはどうすればよいですか?

編集:

私はちょうどこれについて考えていました: 息子ではなく親に関係を追加する可能性はありますか? 私が言いたいのは...メインDBテーブルを変更できますか(私の場合はsys_accountsです-これにはモデルがあります):->別のメソッドで関係()メソッドを呼び出す->関係配列を作成します(一種のジョインのように)

つまり、基本的には、必要な場合にのみ Relations() メソッドを変更するようなものです。出来ますか?もしそうなら、どのように?

4

1 に答える 1

4

gii ツールをカスタマイズして、次のようなモデルを動的に生成することができます。

Yii::app()->getModule('ssgii')->SSGenModel($dynamictableName, $dynamicModelName);

public function SSGenModel($tableName, $modelName){
        $_ccodeGen = $this->controllerMap;

        $ccodeGen = new CCodeGenerator('', null);

        $ccodeGen->codeModel = 'ssgii.generators.model.ModelCode';

        $model=$ccodeGen->ssAutoGenModel($tableName, $modelName);
        return ($model);

    }

機能させるには、さらにいくつかの更新が必要です。しかし、私が読んだあなたの要件から、それはあなたのニーズに合わないようです.

あなたは関係を動的にするために多くのことを期待してきましたが、Yii が提供するものはもっと必要で、テンプレートの知識について理解する必要があるようです。開発者が独自のテンプレート ソース コードを作成するのに役立つジェネレータ ツールを提案できます。その後、データベース構造やスキーマなどを読み込んで、必要なモデル テンプレートを作成できます。

http://www.codesmithtools.com/product/generator

このツールは .NET と SQL SERVER で使用しましたが、PHP と MYSQL でもサポートされています。

http://community.codesmithtools.com/support_forums/f/3/p/11630/44588.aspx

テンプレートを書く Codesmith チュートリアル

于 2013-08-09T10:57:53.823 に答える