我正在构建一个CakePHP应用程序,我有一个与任何控制器/模型无关的MySQL表,但我需要在我的一个控制器/模型中插入/更新/获取此表中的数据,我想要使用find
函数(我知道我可以在我的模型中编写SQL语句并生成->query
但我不想这样做)。我在网上看到的唯一解决方案是连接模型和类似的东西。对我的案子有什么解决方案吗?
提前谢谢!
答案 0 :(得分:9)
控制器不需要将模型用作有效模型。如果您想使用模型功能在桌面上操作,请为其创建模型或即时使用。
然后,您可以通过关联(belongsTo,hasOne)从另一个模型中使用该模型。或者,使用ClassRegistry::init('ModelName');
如果您不要求Model具有任何关联,只需要快速访问即可查找记录。您可以致电ClassRegistry::init('ModelName')
,CakePHP将为您自动创建模型。 (ModelName
应该是表格的 CamelCase 版本,请参阅conventions)
例如:您的数据库中有一个名为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');
答案 1 :(得分:0)
我们可以在不创建模型文件的情况下对表进行操作。
如果我们有一张名为" Holidays"然后我们可以在控制器中获取如下的详细信息。
$this->loadModel("Holiday");
$result = $this->Holiday->find('all');