我无法理解模型类如何在数据库中创建表。
如果我想要一个包含字段用户和密码的表,其中CakePHP是否定义了这些字段?在我看过的例子中,似乎这些字段在模型中得到验证。但他们在哪里定义或初始化?
感谢。
答案 0 :(得分:2)
CakePHP模型不会为您创建数据库表。它们是访问您已创建的现有表的一种方法。如果您遵循CakePHP的命名约定,模型只会自动知道它们与哪些表相关;单数CamelCased模型名称与多个snake_cased表有关。
要创建数据库表,您可以手动执行此操作,也可以使用CakePHP模式来管理数据库结构。还有用于管理数据库结构更改的出色的CakeDC迁移插件。
在CakePHP中使用模型时,它可以通过在数据库表上运行SQL DESCRIBE
查询来确定属于该模型的字段。这是使用Model::schema()
方法完成的。 Cake缓存查询结果,因此不需要为此查询数据库。
答案 1 :(得分:0)
是的,当然,您可以使用其字段控制数据库的表,模型名称应与表名相同,在任何可以加载的控制器中
$this->loadModel('SomeModel')
$mydata=$this->tableName->find('all');
$myuse =$this->set('myuse' , $mydata);
在您的视图中,视图的名称应与Controller的函数名称相同:
<h1> <?php echo $myuse['tableName']['fieldName]; ?></h1>
答案 2 :(得分:0)
不需要与数据库表相同的名称模型
就像我的表名是用户,我创建了一个模型用户
然后您可以使用模型&gt;中的用户模型定义此表user.php的
<?php
App::uses('AppModel', 'Model');
class User extends AppModel
{
public $name = 'User';
public $useTable = 'users';
public $primaryKey = 'id';
}