モデルクラスがデータベース内でテーブルを作成する方法を理解できない。CakePHP 2はどのようにテーブルを作成しますか?
フィールドユーザとパスワードを持つテーブルが必要な場合、CakePHPではこれらのフィールドを定義しますか?私が見てきた例では、これらのフィールドはモデルで検証されているようです。しかし、それらはどこで定義され、初期化されていますか?
ありがとうございました。
モデルクラスがデータベース内でテーブルを作成する方法を理解できない。CakePHP 2はどのようにテーブルを作成しますか?
フィールドユーザとパスワードを持つテーブルが必要な場合、CakePHPではこれらのフィールドを定義しますか?私が見てきた例では、これらのフィールドはモデルで検証されているようです。しかし、それらはどこで定義され、初期化されていますか?
ありがとうございました。
はい、確かに、あなたは、そのフィールドを持つデータベースのテーブルを制御することができ、モデル名はテーブル名と同じである必要があり、任意のコントローラでは、あなたは、あなたのビューにビューの名前を
$this->loadModel('SomeModel') $mydata=$this->tableName->find('all'); $myuse =$this->set('myuse' , $mydata);
を読み込むことができますお使いのコントローラの関数名と同じでなければなりません:
<h1> <?php echo $myuse['tableName']['fieldName]; ?></h1>
CakePHPのモデルは、あなたのためのデータベーステーブルを作成しないでください。これらは、作成した既存のテーブルにアクセスする手段です。 CakePHPの命名規則に従えば、モデルは関係するテーブルを自動的に知るだけです。特異なCamelCaseモデル名は、複数のsnake_casedテーブルに関連しています。
データベーステーブルを作成するには、手動で行うか、CakePHPスキーマを使用してデータベース構造を管理します。また、データベース構造の変更を管理する優れたCakeDC移行プラグインもあります。
モデルは、それがデータベーステーブルにSQL DESCRIBE
クエリを実行して、モデルに属しているフィールドを決定することができますCakePHPの中で使用されています。これは、Model::schema()
メソッドを使用して行われます。 Cakeはクエリー結果をキャッシュし、データベースのクエリーを続ける必要はありません。
私のテーブル名は、ユーザーであると私は、あなたがモデルにUserモデルで、このテーブルを定義することができるモデルユーザー
を作成するようですが、データベースのテーブルと同じ名前のモデルに
を必要としない> User.php
<?php
App::uses('AppModel', 'Model');
class User extends AppModel
{
public $name = 'User';
public $useTable = 'users';
public $primaryKey = 'id';
}
し、また、あなたのモーダルで検証することができ、https://book.cakephp.org/2.0/en/models/data-validation.html – Alex
何か間違っている、あなたはそれを実装したのですか? 、私は確信している、あなたはポストの上に答えを見つけることができます – Alex