2012-03-08 8 views
0

CakePHP 1.3に、関連するテーブルのモデルを持たないモデルアソシエーションを定義する方法はありますか?たとえば、次の​​は、実際にモデルファイルを持っていない2番目のモデルを使わないモデルアソシエーションを定義する

<?php 

    class SomeModel extends AppModel 
    { 
     var $useTable = 'some_table'; 

     var $belongsTo = array(
      'AnotherModel' => array(
       // association data here 
      ) 
     ); 
    } 
?> 

。モデルが使用するテーブルと関連付けの詳細を定義したいだけです。これは可能ですか?

答えて

0

クイックアンサー:いいですね。あなたはそれを試しましたか?悪意のあるシナリオでは、ファイルなしでは動作しないため、モデルファイルを追加するだけです。それは2秒すべてかかります:

<?php 
class AnotherModel extends AppModel { 
    var $name = 'AnotherModel'; 
} 
?> 

完了!

UPDATE

あなたがテーブルの命名上のケーキの規則に従っている場合、あなたはモデルファイルなしで適切な名前を使用してテーブルを参照することができるはずです。たとえば、次のように

  • my_models = mymodelという
  • your_models = YourModel
  • model_tables =のTableModel

しかし、あなたが慣例に従わないテーブルを持っている場合は、モデル・ファイルを作成する必要があり

  • some_table = modelファイル:を指定すると、$useTableが定義されています。$useTable = 'some_table';
  • another_model =モデルファイル:CustomModel$userTable = 'anotherModel';

その周りに他に方法はありません。 CakePHPは魔法ではありません。どのテーブルが参照されているかを知る必要があります。ジョインをしていない限り。次に、結合でテーブルを参照できます。

+0

アソシエーションが使用するテーブルを定義するにはどうすればよいですか?また、モデルファイルを作成したくないのは、関連するテーブルが約8〜11であり、メインモデル以外ではアクセスできないものがあるからです。 – LordZardeck

+0

テーブル名は 'another_models'です。私は従わない。すべての要件を提供せずにコードを記述したいと思っていますが、それがうまくいくと思いますか?モデルファイルを提供しただけであっても、各ファイル内に関連するすべての関係を含める必要はありません。 –

+0

いいえ、私はcakephpにテーブルの名前を伝える必要があります。 AnotherModelは 'some_table'というテーブルを使用します。しかし、私は 'AnotherModel'のモデルファイルを作成したくありません。あなたは、存在しないモデルを動的にバインドするときと同じ効果を達成したいと推測します。 – LordZardeck

関連する問題