2

我正在构建一个 CakePHP 应用程序,我有一个与任何控制器/模型无关的 MySQL 表,但我需要在我的一个控制器/模型中插入/更新/获取该表中的数据,我想用find函数(我知道我可以编写 SQL 语句并->query在我的模型中制作,但我不想这样做)。我在网上看到的唯一解决方案是连接模型和类似的东西。我的情况有什么解决方案吗?

先感谢您!

4

2 回答 2

9

控制器不需要使用模型来成为有效模型。如果您想使用模型特征对表进行操作,请为其创建模型或即时使用模型。

然后,您可以通过关联(belongsTo、hasOne)从另一个模型中使用该模型。或者,使用创建一个实例ClassRegistry::init('ModelName');

如果您不要求 Model 有任何关联,而只是想快速访问以查找记录。您可以调用ClassRegistry::init('ModelName'),CakePHP 将为您自动创建模型。(ModelName应该是CamelCase版本的表格,见约定

例如:您的数据库中有一个名为documents但没有Document.php模型文件的表。调用ClassRegistry::init('Document');将动态为该表创建一个模型。

ClassRegistry::init('Document')->find('all');

甚至

$Document = ClassRegistry::init('Document');
$Document->find('all');

在控制器中,您也可以loadModel()即时使用

$this->loadModel('Document');
$this->Document->find('all');
于 2012-12-28T22:44:06.643 回答
0

我们可以在不创建模型文件的情况下对表进行操作。

如果我们有名为“Holidays”的表,那么我们可以在控制器中获取如下详细信息。

$this->loadModel("Holiday");
$result = $this->Holiday->find('all');
于 2017-12-18T10:08:29.497 回答