cakephp:如何访问另一个没有关联的模型

vib*_*bha 3 cakephp cakephp-1.3

我有3个表: project,amenitiesproject_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)

Sha*_*jad 5

我不建议使用$ 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