CakePHP - передача данных между моделями - PullRequest
0 голосов
/ 16 сентября 2011

Это моя последняя надежда ... Я пытался разобраться в этом весь день, и у меня кончились газы.У меня есть приложение для записи на прием, в котором оператор вводит телефон, название компании, имя и результат вызова (Контроллер клиентов).Затем результат вызова отправляется на контроллер назначений.Допустим, оператор назначает встречу, теперь мне нужно настроить встречу для только что введенного клиента.Но когда я пытаюсь настроить новую встречу для нового клиента, я просто отправляюсь обратно в представление индекса встреч вместо формы.Что я делаю неправильно?Мне нужны другие глаза на это.Моя команда разработчиков была уволена, а я остался последним, поэтому у меня нет никого, кто мог бы отбрасывать идеи и кодировать.Пожалуйста помоги.Я даже не знаю, задаю ли я правильный вопрос в данный момент.

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 голосов
/ 16 сентября 2011

Попробуйте после сохранения данных

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

Теперь у вас есть идентификатор и получите данные там.Или, если вы хотите передать весь массив в эту функцию, попробуйте эту ссылку простая проблема cakephp

0 голосов
/ 16 сентября 2011

Где вы получили $ клиента?он не инициализируется

, поэтому вы можете сохранять данные в сеансе, но это не очень хорошая идея

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

также uoy может передавать идентификатор клиента на другой контроллер, например

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

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

как-то так, надеюсь, это поможет

...