1
class AppointmentsController extends AppController {
public function view($id = null) {
    if (!$this->Appointment->exists($id)) {
        throw new NotFoundException(__('Invalid appointment'));
    }
    $options = array('conditions' => array('Appointment.' . $this->Appointment->primaryKey => $id));
    $this->set('appointment', $this->Appointment->find('first', $options));

    $kk = $this->Appointment->find('first',  array('fields' => 'status', 'conditions' => array('Appointment.id' => $id)));
    $ss = reset($kk);
    $stats = reset($ss);
}
}

DB から値を取得して $stats を設定しましたが、同じコントローラーの別の関数で使用したい

それから私はこのように使いたい

class AppointmentsController extends AppController {
function confirm(){
$stats = 'New';

}
}
4

3 に答える 3

0

同じクラスなので$this->stats、ローカル変数の代わりに使ってみましたか?

于 2013-10-20T12:12:44.357 に答える
0

次のように、最初の関数で別の関数を呼び出すことができます

$this->confirm($status); // calling confirm function

function confirm($status)
{
 //use status as you want
}

または、ステータスをグローバル変数として設定すると、これに任意の関数でアクセスできます。

于 2013-10-20T12:16:59.793 に答える
0

IDでフィールドの値を返すモデルに関数を作成する必要があると思います。

<?php
// model/AppModel.php

public function getFieldById($field='id', $id){
  return $this->field($field, array('id' => $id));
}


// in controller function you can access this like.

$status = $this->Appointment->getFieldById('status', $id); // $id will be appointment id.

?>
于 2013-10-20T12:20:15.853 に答える