我有 3 张 table :
project
、amenities
和 project_amenities
。
我只添加项目表格,我想添加新的设施,首先添加到设施表,然后是 project_amenities 表。
所以我定义了这些关系:
项目有很多便利设施
Amenity belongsTo Project
我在 projects_controller
中声明:
var $uses = array('Amenity');
这会导致我在此处的添加操作出错
if (!empty($this->data)){
$this->Project->create();
作为
Notice (8): Undefined property: ProjectsController::$Project
[APP\controllers\projects_controller.php, line 60]
编辑 另外,我做不到:
$this->Amenity->create();
$insertData = array('name' => $this->data['Project']['Amenity'][$i]['name']);
$this->Amenity->save($insertData);
最佳答案
我不建议使用 $uses = array() ,因为它违背了建立模型关系的目的。此外,它还增加了相当多的开销。
您应该尽可能使用模型关系:
$this->Project->create();
$this->Project->Amenity->create();
$this->Model1->Model2->Model3->Model4->create();
如果你想使用一个不相关的模型,你可以这样做:
$this->loadModel('NewModelName');
$this->NewModelName->action();
查看 http://book.cakephp.org/view/1031/Saving-Your-Data和 http://book.cakephp.org/view/992/loadModel
关于cakephp:如何访问另一个没有关联的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6678903/