【发布时间】:2017-03-29 18:49:27
【问题描述】:
使用 CakePHP 的新程序员,我有 3 个控制器:大学、学院、系。
我的桌子是: 大学 (id, name, country_id), 院系(ID,名称,大学ID), 部门(id、name、faculty_id)。
当我添加一所新大学时,我需要自动创建一个默认值 ('n/a') 作为该大学的学院,并为此创建的学院创建一个默认值 ('n/a') 作为部门。 在我们的系统中,我们需要大学至少有一名教师和一名教师。部门。因此,如果新的大学 id = 10,那么在保存后,我需要创建一个新的学院(比如说 facculties.id = 25),其中 university_i=10。和一个新部门,faculty_id = 25。
这是我的代码 UniversitiesController 添加功能
$university = $this->Universities->newEntity();
if ($this->request->is('post')) {
$university = $this->Universities->patchEntity($university, $this->request->data);
if ($this->Universities->save($university)) {
$this->Flash->success(__('The university has been saved.'));
return $this->redirect(['action' => 'index']);
} else {
$this->Flash->error(__('The university could not be saved. Please, try again.'));
}
}
有什么帮助吗?
【问题讨论】:
-
到目前为止您尝试过什么?您是否在线阅读过非常详细的 CakePHP 书籍?你有什么具体问题?您使用的是什么版本的 CakePHP? ..等等等等等等。
-
我认为您的问题是关于设置默认值?一个真正简单的方法是在数据库级别为字段设置默认值。然后,如果您没有在
$this->request->data中设置该字段,它将保存为默认数据库值。ALTER TABLEmy_table` 更改列my_columnmy_columnvarchar(10) NOT NULL DEFAULT 'n/a' ;` -
此外,如果您设置了关联,您可以执行 ->newEntity($data, ['associated' => ['Faculty', 'Department']) 或 ->patchEntity($entity, $data , ['关联' => ['教师', '部门'])
-
Derek:您的建议似乎不错,并且已经建立了关联。但是我应该在哪里将教师设置为默认值('n/a'),然后将部门设置为'n/a'?
标签: cakephp cakephp-3.0