vib*_*bha 3 cakephp cakephp-1.3
我有3个表:
project,amenities和project_amenities.
我只添加项目表单,我想添加新的设施,首先添加到设施表,然后添加project_amenities表.
所以我定义了这些关系:
Project hasMany Amenities
Amenity belongsTo Project
我宣布projects_controller:
var $uses = array('Amenity');
这为我的添加操作提供了错误
if (!empty($this->data)){
$this->Project->create();
Run Code Online (Sandbox Code Playgroud)
如
Notice (8): Undefined property: ProjectsController::$Project
[APP\controllers\projects_controller.php, line 60]
Run Code Online (Sandbox Code Playgroud)
编辑 另外,我做不到:
$this->Amenity->create();
$insertData = array('name' => $this->data['Project']['Amenity'][$i]['name']);
$this->Amenity->save($insertData);
Run Code Online (Sandbox Code Playgroud)
我不建议使用$ uses = array(),因为它违背了模型关系的目的.此外,它还增加了一些开销.
您应尽可能使用模型关系:
$this->Project->create();
$this->Project->Amenity->create();
$this->Model1->Model2->Model3->Model4->create();
Run Code Online (Sandbox Code Playgroud)
如果要使用不相关的模型,可以执行以下操作:
$this->loadModel('NewModelName');
$this->NewModelName->action();
Run Code Online (Sandbox Code Playgroud)
查看http://book.cakephp.org/view/1031/Saving-Your═和http://book.cakephp.org/view/992/loadModel