Cakephp 从控制器中的文本框中获取值并将其保存在另一个模型中
我有一个名为users\u controller的控制器和一个名为getdata()的操作。getdata.ctp是对应于该操作的视图。在该视图中,我添加了一个名为route.ctp的元素,其中包含一个from data。我的问题是我想在getdata()方法中从form元素中检索所有值,并将其保存在另一个模型路由中。我们如何做到这一点? 为此,我在element route.ctp中编写表单操作Cakephp 从控制器中的文本框中获取值并将其保存在另一个模型中,cakephp,controller,views,Cakephp,Controller,Views,我有一个名为users\u controller的控制器和一个名为getdata()的操作。getdata.ctp是对应于该操作的视图。在该视图中,我添加了一个名为route.ctp的元素,其中包含一个from data。我的问题是我想在getdata()方法中从form元素中检索所有值,并将其保存在另一个模型路由中。我们如何做到这一点? 为此,我在element route.ctp中编写表单操作 <?php echo $this->Form->create('User
<?php echo $this->Form->create('User', array('url' => array('action' => 'getdata'))); ?>
只是一些观察: 意见1 表单关联数据的模型是
User
,而不是Defineroute
。如果两个模型的字段相同,则必须在$this->data
属性中取消引用用户
模型
因此,不要这样做:
$this->Defineroute->save($this->data);
做:
更新
如果您通过执行pr($this->data)
调试post数据,您应该会看到以下内容:
array('User' => array(/*Your User fields*/))
这就是为什么如果您执行$this->data['User']
操作,您只会得到定义输出
模型的字段
意见2
您实际上不需要调用$this->Defineroute->create()代码>因为每个请求只创建一条记录,所以实际上不需要重置模型中的活动记录
意见3
调用另一个控制器函数,如$this->converter()只要它们是实用函数而不是操作,代码>就可以。这样做的原因是您在控制器操作之间创建了依赖关系,如果将来更改一个,则可能会破坏另一个。如果函数从一个模型中设置视图变量,考虑将代码转换为模型本身。是否将数据提交到控制器中。action@liyakat我没有在controler中获取数据。它也不是SavedServation 1-我想将数据保存到defineroute表中。我为此创建了一个模型定义文件。Observation2每次我想向defineroute表添加数据时,需要$this->defineroute->create();是否有必要???观察1:这很好,但是表单使用用户
模型键入字段,而定义输出
表不知道该模型;这就是为什么我说去参考它。观察2:你不是在循环中做的,所以它不是。我猜您会在每次提交表单(发回服务器)时添加一个Defineroute
。模型的活动记录不会在请求之间持久化,因此您无需担心。那么,如何直接添加字段数据以定义Outeth很好,但是表单使用Defineroute表不知道的用户模型对字段进行键控,这是如何解决的问题。Defineroute和User表是不同的。只显示两个字段same@SibinF,如果您将问题更新为包含一些描述您希望$this->data
包含的内容的代码,这可能对其他人有用?从我的角度来看,我真的看不出你所做的有什么错。
$this->Defineroute->save($this->data['User']);
array('User' => array(/*Your User fields*/))