首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CakePHP请求模型表,尽管useTable = false

CakePHP请求模型表,尽管useTable = false
EN

Stack Overflow用户
提问于 2009-09-26 19:13:22
回答 6查看 10.1K关注 0票数 6

我正在创建一个联系人表格,将电子邮件发送到指定的地址。我正在尝试利用CakePHP模型验证,因为我不需要一个用于联系人模型的表,所以我在联系人模型中将useTable设置为false。然而,在执行发送的控制器函数中,我得到了一个错误。错误是

缺少数据库表错误:找不到模型联系人的数据库表联系人。

指向第一次调用$this->Contact的行:

$this->Contact->验证( $this->data );

我认为这对于CakePHP框架来说是件好事。为什么我错了?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-09-28 12:52:17

编辑:参见CakePHP 2.x的this answer (和comment) (模型文件应该称为Contact.php)

CakePHP 1.x -验证模型文件名为contact.php (小写)。如果不是,CakePHP将找不到您的模型,而是在运行时创建一个名为Contact的"autoModel“,它使用contacts表。

票数 7
EN

Stack Overflow用户

发布于 2012-07-23 17:11:10

这是搜索的最高结果,但我认为这些信息已经过时了。

在CakePHP 2.0+中,您需要在模型中设置$useTable = false;,模型名称使用propercase (因此应该是Contact,而不是建议的contact ),并且控制器必须让$uses = 'Contact';$uses = array('Contact');或cake生成默认的模型属性,并尝试加载不存在的表。因此,这两件事都必须设置好,才能发挥作用。

票数 4
EN

Stack Overflow用户

发布于 2012-04-03 16:11:28

有两件事给我带来了不同--将模型的文件名更改为Contact.php (而不是ContactModel.php),并在ContactController.php中注释掉var $uses = 'Contact';

此外,许多用于联系人表单的教程都是针对早期版本的CakePHP的。确保使用正确的表单输入结构。这里是我在蛋糕2.1的视图:

代码语言:javascript
运行
复制
<?php 
    echo $this->Form->create('Contact');
    echo $this->Form->inputs();
    echo $this->Form->end('Send');

?>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1481936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档