Chi*_*Sky 0 cakephp cakephp-3.0
我有两个型号 - Cars
和CarOptions
Cars
hasOne CarOptions
如果用户要编辑汽车 - 他们也可以设置一些CarOptions并保存
与Cars
保存相关的一切都很好,但CarOptions
不能保存.如果我Car
在保存之前调试对象 - 我看到以下内容
Car: {
"id": 3,
"name": "Ford Mustang",
"description": "some description",
"city": "San Francisco",
"state": "California",
"country": "USA",
"created": "2015-08-14T12:20:14-0500",
"CarOptions": {
"manual_transmission": "N"
}
}
Run Code Online (Sandbox Code Playgroud)
我保存的代码如下
$car = $this->Cars->findByName('Ford Mustang')->first();
$car = $this->Cars->patchEntity($car, $this->request->data);
$carOptions = $this->Cars->CarOptions->newEntity();
$carOptions->manual_transmission = 'N';
$car->CarOptions = $carOptions;
$this->Cars->save($car);
Run Code Online (Sandbox Code Playgroud)
但是,不会创建或编辑CarOptions记录.我错过了什么?
您没有正确遵守惯例,请参阅
Cookbook>数据库访问和ORM>保存数据>保存HasOne关联
保存hasOne关联时,ORM需要在关联名称的单数下划线版本中使用单个嵌套实体.[...]
因此,对于名为的关联CarOptions
,要使用的属性应该是car_option
.
另请注意,如果您想让用户选择该选项及其值,那么硬编码就像您正在进行的那样并不是真正的方法,而是在请求数据中正确传递,并让编组人员执行修补实体时的"实体"转换.
也可以看看
归档时间: |
|
查看次数: |
1596 次 |
最近记录: |