Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cakephp 从控制器中的文本框中获取值并将其保存在另一个模型中_Cakephp_Controller_Views - Fatal编程技术网

Cakephp 从控制器中的文本框中获取值并将其保存在另一个模型中

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

我有一个名为users\u controller的控制器和一个名为getdata()的操作。getdata.ctp是对应于该操作的视图。在该视图中,我添加了一个名为route.ctp的元素,其中包含一个from data。我的问题是我想在getdata()方法中从form元素中检索所有值,并将其保存在另一个模型路由中。我们如何做到这一点? 为此,我在element route.ctp中编写表单操作

    <?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*/))