我正在与CakePHP一起开发一个Web应用程序,该应用程序具有几个表格以及它们之间的一些关系。在这种情况下,我有一系列涉及日历年,部门和相关学校的会议,但是当数据从控制器返回到视图时,模型无法获取关联的表信息。CakePHP模型无法抓取表关联
已经有$belongsTo
工作人员与他们所属的部门和学校之间的关系,并且当日历数组返回日历索引时,我也设法抓住相关会议,但理想情况下我希望能够列出所有与日历,部门和学校的名称会面,而不是存储在会议表中的ID字段。
这里是我的表:
dbo.meetings
id (int) *primary key*
calendar_id (int)
department_id (int)
school_id (int)
created (datetime2(7))
modified (datetime2(7))
dbo.calendar
id (int) *primary key*
name (nvarchar(50))
startdate (datetime2(7))
enddate (datetime2(7))
created (datetime2(7))
modified (datetime2(7))
dbo.schools
id (int) *primary key*
name (nvarchar(255))
(other fields)
dbo.departments
id (int) *primary key*
name (nvarchar(255))
(other fields)
下面是会议控制器:
<?php
App::uses('AppController','Controller');
class MeetingsController extends AppController {
public $helpers = array('Form');
public function beforeFilter() {
parent::beforeFilter();
}
public function index() {
$this->set('meetings', $this->Meeting->find('all'));
}
}
?>
下面是会议的模式:
<?php
App::uses('AppModel','Model');
class Meeting extends AppModel {
public $primaryKey = 'id';
public $recursive = -1;
public $belongsTo = array(
'Calendar' => array(
'className' => 'Calendar',
'foreignKey' => 'calendar_id'
),
'School' => array(
'className' => 'School',
'foreignKey' => 'school_id'
),
'Department' => array(
'className' => 'Department',
'foreignKey' => 'department_id'
)
);
}
?>
目前index.ctp
文件中/View/Meetings
只包含打印出数组unti的<?php echo var_dump($meetings); ?>
我可以让协会工作,然后我会根据需要进行调整。
这里是阵列的样子大气压:
array(1) {
[0]=>
array(1) {
["Meeting"]=>
array(6) {
["id"] => string(1) "1"
["calendar_id"] => string(1) "1"
["department_id"] => string(2) "33"
["school_id"] => string(1) "1"
["created"] => NULL
["modified"] => NULL
}
}
}
出于某种原因,它只是将不会获取日历,部门和学校的详细信息,它应该和我想它。谁能帮忙?
编辑:示范学校
<?php
App::uses('AppModel','Model');
class School extends AppModel {
public $validate = array(
'name' => array(
'required' => array(
'rule' => 'notBlank',
'message' => 'A school name is required.'
)
)
);
}
?>
你看联想错误。你能否确认“日历”,“学校”和“部门”表格的模型被调用? – drmonkeyninja
@drmonkeyninja日历,学校和部门分别 – Daniel
您有没有理由不理会Cake的命名约定?它只会让你的生活更加艰难! – drmonkeyninja