2016-07-12 13 views
0

コントローラでは、loadModelメソッドを使用してcakephpで別のテーブルデータを取得できます。しかし、モデルで可能ですか?たとえば、ORM/Tableクラスを使用しています。私は私のテーブル名がコードCakephp 3:使用しないとモデルに別のモデルを読み込むことは可能ですか?

$this->table('blogs'); 

以下table method.Likeは関連せずに同じように別のテーブルを宣言することが可能です使用に定義しましたか?

注:私はコントローラで行うことができます。

+0

をカバーして願っています?アソシエーションや依存性のある注射を使わずに外界について知っているモデルを持っていると、私にはあまり良いアイデアのようには聞こえません。 – ndm

+0

私は2つのテーブルの出席者とユーザーを持っている、私は出席テーブルのすべてのユーザーデータを見たい、出席テーブルで私は学生の現在のステータスを追加する選択フィールドを追加します。だから私は出席者インデックスのユーザーテーブルデータが必要です。 –

+0

これらの表のような音は互いに関連している必要があります。あなたは何をしたいのかだけを記述しましたが、なぜ関連/結合なしで何かをするための技術的な必要性はありません!また、あなたが読んでいるかどうか、または保存しているかどうかを知るのは難しいので、いくつかのコードを表示したいかもしれません。 – ndm

答えて

0

、あなたのモデルはあなたが協会(belongsToの、hasOneのなど)を介してロードする他のモデルに関連付けられている場合は、TableRegistry Reference

use Cake\ORM\TableRegistry 
$otherTable = TableRegistry::get('other'); 
//do something with the other table 
//example 
$someRecord = $otherTable->find()->first(); 

を使用することができます別のテーブルでモデルをロードする場合あなたは直接、例えば、このようにそれを使用することができます:

$this->otherModel->find()->contain()->where(['someCondition' => 'value'])->first() 

は、それはあなたがやろうとしているものであれば、あなたが本当に一つに2つのテーブルを定義することができない、と述べました。別のテーブルの中に別のテーブルをロードして使用することはできますが、1つのテーブルクラスの下に2つのテーブルを定義することはできません。

それは正確にあなたが何をすべきかのように聞こえるよう、あなたがここで関連付けを定義したくない理由、私は本当に理解していないが、私はなぜあなたはそれを行う必要があるでしょう、テーブルのレジストリオプションがあなたに

関連する問題