Php 无法将数据从一个表保存到另一个表

Php 无法将数据从一个表保存到另一个表,php,mysql,cakephp,Php,Mysql,Cakephp,在cakephp中,我无法将从一个表返回的数据保存到另一个表中。 我从Tutors表中预先填充了表单中的数据,我只想将这些数据保存为表tutorEdit中的新行(不要与编辑函数混淆)。 我遇到的问题是,我获得了要保存的数据,但tutorEdit没有保存任何返回的数据(无错误) public function tutor\u edit($id=null){ $this->loadModel('Tutor'); $this->Tutor->id=$id; 调试($this->request->dat

在cakephp中,我无法将从一个表返回的数据保存到另一个表中。 我从Tutors表中预先填充了表单中的数据,我只想将这些数据保存为表tutorEdit中的新行(不要与编辑函数混淆)。 我遇到的问题是,我获得了要保存的数据,但tutorEdit没有保存任何返回的数据(无错误)

public function tutor\u edit($id=null){
$this->loadModel('Tutor');
$this->Tutor->id=$id;
调试($this->request->data);
如果(!$this->Tutor->exists()){
抛出新的NotFoundException(uuu('Invalid tutor');
}
如果($this->request->is('post')){
如果($this->TutorEdit->save($this->request->data)){
$this->Session->setFlash(“要编辑的导师详细信息已转发给管理层”),“flash\u success”);
//$this->重定向(数组('controller'=>'tutors','action'=>'tutordetails');
}否则{
$this->Session->setFlash(uuu(“导师编辑详细信息无法保存。请重试”),“flash\u警报”);
}
}否则{
$this->request->data=$this->Tutor->read(null,$id);
}
/////

中看不到任何关于此的信息,因为您试图保存的数据是“Tutor”,而不是“TutorEdit”。在您共享的链接中,第一部分显示了需要保存的正确数组格式

试试这个:

if ($this->request->is('post')  ) {
    $tutoredit = array('TutorEdit' => $this->request->data['Tutor']);

    if ($this->TutorEdit->save($tutoredit)) {
            $this->Session->setFlash(__('The tutor details to be edited have ben forwarded to management'), 'flash_success');
    } else {
            $this->Session->setFlash(__('The tutor edit details could not be saved. Please, try again.'), 'flash_alert');
    }
}

这不起作用。我无法得到一个错误,但没有保存任何数据,即使请求->数据已更正。它确实使用put而不是post工作?我还需要tutorEdit中的额外字段以及tutorEdit数据。我想将其添加到控制器中,但我该如何做?@ajt-额外字段-只需将它们添加到表单中即可(确保它们的名称是TutorEdit字段的名称)。对于“put”,请使用“OR”(
|
)在
if
条款中,额外字段不用于用户输入,那么如何从控制器添加这些字段?我尝试了一些方法,但对如何添加字段感到困惑。此外,我无法使用put,因为这会覆盖当前数据,我需要在每次添加新行的位置张贴。这比我想象的要难一些
if ($this->request->is('post')  ) {
    $tutoredit = array('TutorEdit' => $this->request->data['Tutor']);

    if ($this->TutorEdit->save($tutoredit)) {
            $this->Session->setFlash(__('The tutor details to be edited have ben forwarded to management'), 'flash_success');
    } else {
            $this->Session->setFlash(__('The tutor edit details could not be saved. Please, try again.'), 'flash_alert');
    }
}