我有2个型号:照片和得分。每个Photo
都应该有一个Score
。因此,我将Photo
设置为属于Score
:
class Photo extends AppModel {
public $actsAs = array('Containable');
public $belongsTo = array('Score');
}
scores
表格有一个photo_id
列。 (对于其photo
id)
但是,有一个问题....如何保存photo
和score
?
答案 0 :(得分:0)
正如您在问题中提到的那样:“每个Photo
应该有一个Score
”。所以你必须改变你的照片模型。这看起来像是:
class Photo extends AppModel {
public $actsAs = array('Containable');
public $hasOne = array('Score');
}
您必须使用该模型调用需要先保存的saveAll()方法。因此,其他关联模型可以获取新插入记录的值以作为外键处理。
$this->Photo->saveAll($this->request->data, array('deep' => true));
您的请求数组($this->request->data
)应如下所示:
Array(
[Photo] => Array(
[img_name] = abc.jpg
[image_group] = cricket
... other fields ...
)
[Score] => Array(
[score_gain] => 10
... other fields ....
)
)
This link会帮助你。如何保存关联数据。您也可以使用saveAssociated()方法。
我希望它对你有用。