0

私は、立っているユーザーを辞任、アクティブ、新規、および異動できる従業員アプリケーションを持っています。私が達成したいのは、従業員の地位がアクティブから変更/編集された場合(standing_id = 1)、電子メールで送信できるはずですが、そうではないということです。EmployeeControllerにメール関数を配置しました。以下は私のコードです。

function _sendNewEmployeeEditMail($id) {
$Employee = $this->Employee->read(null,$id);
$email = new CakeEmail();
$email->from(array('no-reply@test.com' => 'Testing App'));
$email->to(array('jaahvicky@gmail.com' => 'Name Surname'));
$email->subject('New Employee');
$email->template('employee_email');
$email->viewVars(compact('Employee'));
$email->emailFormat('html');
$edit_email = true;    
$current_status = $this->Employee->field('standing_id');
if($current_status==1) {
$edit_email = false;
if ($email->send()) {
$this->Session->setFlash('Your employee has been submitted.','default',array('class' => 'notification'));
return true;
} else {
$this->Session->setFlash('Your employee has not been submitted.','default',array('class' => 'error'));
return false;
}
}
}

私の編集保存機能では、これが私がメールを送信しようとしている方法です

public function edit($id = null) {
    $this->Employee->id = $id;
    if (!$this->Employee->exists()) {
        throw new NotFoundException(__('Invalid employee'));
    }
    if ($this->request->is('post') || $this->request->is('put')) {
        if ($this->Employee->save($this->request->data)) {
            $this->Session->setFlash(__('The employee has been saved'),'default',array('class' => 'notification'));
            $this->_sendNewEmployeeEditMail($this->Employee->getLastInsertID()  );
            $this->redirect(array('action' => 'index'));
        } else {
            $this->Session->setFlash(__('The employee could not be saved. Please, try again.'),'default',array('class' => 'error'));
        }
    } else {
        $this->request->data = $this->Employee->read(null, $id);
    }
    $standings = $this->Employee->Standing->find('list');
    $this->set(compact('standings'));
4

1 に答える 1

0

を使用しています。これは、新しい従業員を挿入$this->Employee->getLastInsertID()した後にのみ表示されます。

既存の従業員を編集しているため、これは常に空になります。代わりに $id を使用する必要があります。

$this->_sendNewEmployeeEditMail($id);
于 2013-03-03T11:47:35.033 に答える