モデルはCakePHPで複数のテーブルを持つことができますか?モデルはCakePHPで複数のテーブルを持つことができますか?
答えて
手動でこの文から推測:
モデルは、データベース内の特定のテーブルに、より具体的には一般的にデータベースへのアクセスポイントである、と。デフォルトでは、各モデルはテーブルの名前を使用しています。そのテーブルの名前は複数のテーブルで、「ユーザー」モデルでは「ユーザー」テーブルが使用されます。
私はそうは思いませんが、必要なものを関係づけることができます。
それは...同時に複数のテーブルを持つことはできませんが、別のものにモデルのテーブルを切り替えるようにモデル:: useTableプロパティを変更することができるかもしれません。それが旋風を与え、それが動作するかどうか私達に知らせてください。
技術的には、あなたが質問している方法に基づいて、私が知っているものではありません。しかし、しばしば、私は何かに関係を使用しますかもしれないあなたがしているものに似ている。たとえば、人は人のテーブルに簡単にドロップできるアドレス情報を持っていますが、私は通常、他のエンティティもアドレス(ビジネスなど)を持つことができるため、取り除くことを好みます。
DBに擬似継承モデルを実装したい場合は同じ考えです。たとえば、ボランティアは人ですが、請負業者、ベンダー、従業員もそうです。すべては、人のテーブルに保存する可能性のある特定のプロパティと、その人のタイプに固有のその他のプロパティを共有します。
どちらのモデルも2つのモデルがありますが、それらは関連付けによってシームレスに動作します。
これは、あなたが考えているシナリオのようなものであれば、複数のテーブルを持つモデルではありませんが、同様のアプローチが有効です。
子テーブルから情報を取得するときに、親テーブルに格納されたデータを結合する必要がある、ある種の継承をデータベースに実装したいと思います。 これを解決する私のアプローチは、子モデルでafterFindコールバックを使用していました。
function afterFind($results) {
foreach ($results as $key => $val) {
$fieldRetrieved=$this->query("SELECT *field* FROM *parent_table* WHERE id={$val['*ChildModelName*']['id']}");
$results[$key]['*ChildModelName*']['*field*']=$fieldRetrieved[0]['*parent_table*']['*field*'];
}
return $results;
}
を私はフィールド/ sの子テーブルから得られた結果を親テーブルからを含めたこの方法では次のように私は、コールバックを再定義しました。この例では、両方のテーブルがidというフィールドのインデックスであり、子テーブルのそのフィールドも親テーブルの外部キーである(つまり擬似継承を作成する)と仮定しています。
確かに、同じテーブルがたくさんあるときは便利です。
class SomeModel extends Model
{
var $useTable = false;
public function ReadData()
{
// select table
if($a == 1)
$this->setSource('tableName1');
else if($a == 2)
$this->setSource('tableName2');
// ...
else if($a == N)
$this->setSource('tableNameN');
// now perform operations with selected table
return $this->find('all');
}
}
単一の 'source'を定義するのではなく、テーブルのセット全体で' find( 'all') 'を実行できますか? – Oliboy50
- 1. CakePhpでhasManyを持つテーブルの複数のレコードを更新できません
- 2. 複数のFilterAttributesを持つことができますか?
- 3. UnityAppControllerのサブクラスを複数持つことができますか?
- 4. 同じモデルの複数のインスタンスを複数持つことはできますか?
- 5. 複数のモデルを持つThreeT20TTableViewController?これは可能ですか?
- 6. 複数のテーブルを持つデータベースを開くことができません
- 7. 複数のインスタンスを持つことができるモデルのフォームを表示
- 8. beforeEachに複数のspyObjを持つことができます
- 9. フェイスブックインスタントアーティクル用のフィードを複数持つことができます
- 10. プロセスは複数のstdoutとstdinを持つことができますか?
- 11. 複合キーを持つテーブルのCakePHPビュー
- 12. CakePHPは複数のモデルでトランザクションをサポートしていますか?
- 13. ユーザーは複数の「ドライブ」を持つことができますか?
- 14. モデルなしのDjangoフォームを持つことができます
- 15. 私のコントロールはデフォルトで複数のテーマを持つことができます
- 16. cakePHP複数のモデル
- 17. 同じフェーズで複数のCXFインターセプタを持つことができますか
- 18. 私はasp.net mvcで複数のsite.masterファイルを持つことができます
- 19. ストリーミング分析ジョブで複数のクエリを持つことはできますか?
- 20. 複数のメールアドレスと電話番号を持つことはできますか?
- 21. Google Spannerに同じ親を持つ複数のテーブルを持たせることができます
- 22. エンティティフレームワークと複数の名前を持つテーブル。これは問題ですか?
- 23. 私のサイトに複数のfavicon.icoを持つことはできますか?
- 24. CakePHP 3.xでは、MySqlテーブルの行数をどのように数えることができますか?
- 25. システムに複数のjava vmを持つことはできますか?
- 26. ルータに複数のloadChildrenを持つことはできますか?
- 27. XMLスキーマは、単一の複合型で複数の選択肢を持つことができますか?
- 28. 変数はjavaで複数の列挙型定数を持つことができますか?
- 29. 複数のテーブルが1つのLaravelモデル
- 30. バインディング複数のモデルcakephpの
「この項目を確認」リンクを開くことができません。 –