hasMany/belongsToの関係で2つのモデルがリンクされています。ここCakePHP:結合されたテーブルのデータが表示されない
//Table hr_emp_ids. Each employee can have many HR cases.
public $hasMany = array(
'HrCase' => array(
'className' => 'HrCase',
'foreignKey' => 'emp_user_id'
)
);
そしてbelongsToの定義されています:ここでhasManyの定義がある
//Table hr_cases. Each HR case is owned by an employee.
public $belongsTo = array(
'HrEmpId' => array(
'className'=> 'HrEmpId',
'foreignKey' => 'emp_user_id'
);
私のビューのためのコントローラが死んで簡単です:
public function view($id = null) {
$this->HrCase->id = $id;
if (!$this->HrCase->exists()) {
throw new NotFoundException(__('Invalid Case ID'));
}
$options = array('conditions' => array('HrCase.' . $this->HrCase->primaryKey => $id));
$this->set('case', $this->HrCase->find('first', $options));
}
私がやろうとしているすべてのhr_cases.emp_user_id = hr_emp_ids = emp_user_idに基づいてhr_emp_idsテーブルからhire_dateおよびssnを表示します。
<tr>
<td><strong>Employee: </strong><br><?php echo h($case['HrCase']['full_name']); ?></td>
<td><strong>Date of Hire: </strong><br><?php echo h($case['HrEmpId']['hire_date']); ?></td>
<td><strong>SSN: </strong><br><?php echo h($case['HrEmpId']['ssn']); ?></td>
表構造:
desc hr_emp_ids;
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| hire_date | date | YES | | NULL | |
| ssn | varchar(11) | NO | | NULL | |
| emp_user_id | int(11) | NO | | NULL | |
+-------------+-------------+------+-----+---------+----------------+
desc hr_cases; (truncated)
+--------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| emp_user_id | int(11) | NO | | NULL | |
HrEmpIdモデルから何も表示されませんここでビューコードです。私はここで何が間違っているのか分かりません。私はこのような団体を数十回も問題なく作りました。私は何が欠けていますか?
良いアドバイスを参照してください)。また、関連するモデルに包含動作を追加しました。残念なことに、HrEmpIdをデバッグすると、配列は次のようになります:$ options = array($ this-> HrCase-> findById($ id)、 'contains' => array( 'HrEmpId'))空の。まだ困った! – Chris
どのケーキのバージョンを使用していますか? – bill
バージョン2.0.5です。 – Chris