我有一个用于收集电子邮件地址的表单,该表单对应于我的用户模型。我希望表单还有一个电子邮件的文本字段,但我不需要将邮件保存到我的数据库中。
echo $this->Form->create('User', array('action' => 'invite','controller' => 'users'));
echo $this->Form->input('User.from', array('label'=>"Your email",'value'=>'your email','class'=>"",'type'=>'email'));
echo $this->Form->input('User.to', array('label'=>"Your friend's", 'value'=>"your friend's email",'class'=>"",'type'=>'email'));
echo $this->Form->textarea('User.message', array('label'=>'Your message', 'value'=>"some message"));
echo $this->Form->end(array('label'=>'Invite', 'class'=>'buttonstyle'));
这样可行,但前提是我向Users表添加了一个消息列,这是我不需要的。我宁愿做这样的事情
echo $this->Form->textarea('message', array('label'=>'Your message', 'value'=>"some message"));
但这不起作用,我想因为“消息”与模型无关。有更好的方法吗?
答案 0 :(得分:1)
但你最初的问题是错误的。它们通常总是属于模型(范围可以这么说),但不一定属于db表。你甚至可以没有任何与之相关的模型。但在大多数情况下,这没有多大意义。
问题是:你需要蛋糕魔术吗(根据类型通过input()自动生成复选框/ textarea)?你想要验证它们吗? 那么你需要考虑至少一些模式条目。
请参阅http://www.dereuromark.de/2011/12/15/tools-plugin-part-2-contact-form/以获取如何在模型中使用_schema以获取所有这些内容的示例(就像使用真实数据库字段一样)。
哦,