CakePHP - 在模型之间传递数据

时间:2011-09-16 05:09:03

标签: cakephp cakephp-1.3

这是我最后的希望......我一整天都想弄清楚这一点,而且我已经没气了。我有一个约会应用程序,操作员输入电话,业务,姓名和通话结果(客户控制器)。然后呼叫结果进入约会控制器。让我们说运营商设置了预约,然后我现在需要为我刚刚输入的客户设置预约。但是,当我尝试为新客户设置新约会时,我只是回到Appointments索引视图而不是表单。我究竟做错了什么?我需要另外一些眼睛。我的开发团队全部被解雇了,我是最后一个,所以我没有任何人可以反复思考和编码。请帮忙。我甚至不知道我现在是否在问正确的问题。

function step1() {
    $this->set('title_for_layout','Make a New Call');
    if (!empty($this->data)) {
        $this->Customer->create();
        $this->data['Customer']['user_id'] = $this->Auth->user('id');
        if ($this->Customer->save($this->data)) {

            $this->Session->setFlash(__('The customer has been saved', true));
            //??? WHAT DO I PUT HERE TO GO TO THE APPOINTMENTS CONTROLLER WITH THIS CUSTOMER DATA
        } else {
            $this->Session->setFlash(__('The customer could not be saved. Please, try again.', true));
        }
    }
}

2 个答案:

答案 0 :(得分:0)

你从哪里获得$ customer?它没有初始化

因此您可以在会话中保存数据 但这不是个好主意

$this->Session->write('data',$this->data);

也可以将客户ID转移到另一个像这样的控制器

$this->redirect("/appointments /step2/{$id}/");

// this is in appointments controller
function step2($id = null){
  if($id){
    $this->loadModel('Customer');
    $customer = $this->Customer->findById($id);
  }
}

这样的事情,希望它有所帮助

答案 1 :(得分:0)

保存数据后尝试此操作

if ($this->Customer->save($this->data)) {
     $this->Session->setFlash(__('The customer has been saved', true));
     $id = $this->ModelName->getInsertID();
     $this->redirect("customers/index/$id");

现在你有了id并在那里获取数据。 或者,如果您想将整个数组传递给该函数,请尝试使用此链接simple cakephp problem