2017-05-15 12 views
0

モデルクラスがデータベース内でテーブルを作成する方法を理解できない。CakePHP 2はどのようにテーブルを作成しますか?

フィールドユーザとパスワードを持つテーブルが必要な場合、CakePHPではこれらのフィールドを定義しますか?私が見てきた例では、これらのフィールドはモデルで検証されているようです。しかし、それらはどこで定義され、初期化されていますか?

ありがとうございました。

答えて

0

はい、確かに、あなたは、そのフィールドを持つデータベースのテーブルを制御することができ、モデル名はテーブル名と同じである必要があり、任意のコントローラでは、あなたは、あなたのビューにビューの名前を

$this->loadModel('SomeModel') $mydata=$this->tableName->find('all'); $myuse =$this->set('myuse' , $mydata);

を読み込むことができますお使いのコントローラの関数名と同じでなければなりません:

<h1> <?php echo $myuse['tableName']['fieldName]; ?></h1>

+0

し、また、あなたのモーダルで検証することができ、https://book.cakephp.org/2.0/en/models/data-validation.html – Alex

+0

何か間違っている、あなたはそれを実装したのですか? 、私は確信している、あなたはポストの上に答えを見つけることができます – Alex

2

CakePHPのモデルは、あなたのためのデータベーステーブルを作成しないでください。これらは、作成した既存のテーブルにアクセスする手段です。 CakePHPの命名規則に従えば、モデルは関係するテーブルを自動的に知るだけです。特異なCamelCaseモデル名は、複数のsnake_casedテーブルに関連しています。

データベーステーブルを作成するには、手動で行うか、CakePHPスキーマを使用してデータベース構造を管理します。また、データベース構造の変更を管理する優れたCakeDC移行プラグインもあります。

モデルは、それがデータベーステーブルにSQL DESCRIBEクエリを実行して、モデルに属しているフィールドを決定することができますCakePHPの中で使用されています。これは、Model::schema()メソッドを使用して行われます。 Cakeはクエリー結果をキャッシュし、データベースのクエリーを続ける必要はありません。

0

私のテーブル名は、ユーザーであると私は、あなたがモデルにUserモデルで、このテーブルを定義することができるモデルユーザー

を作成するようですが、データベースのテーブルと同じ名前のモデルに

を必要としない> User.php

<?php 
App::uses('AppModel', 'Model'); 
class User extends AppModel 
{ 
    public $name = 'User'; 
    public $useTable = 'users'; 
    public $primaryKey = 'id'; 
} 
関連する問題