您的位置:首页 > 编程语言 > PHP开发

laravel插件 zofe/rapyd checkboxgroup bug修改

2015-11-12 00:00 731 查看
摘要: zofe/rapyd 是一个快速CURD的工具, 可灵活定制, 但使用过程中发现checkboxgroup的一个bug, 在去掉所有checkbox选项时, 数据库并没有将相应的多对多关系删掉

以官方Demo为例:

DataForm页面



去掉所有的复选框, 点击 Save 按钮



重新打开DataForm页面, 数据并没有改变, 这是bug

若至少保留其中一项, 则结果会改变



修改文件:

vendor/zofe/rapyd/src/DataForm/Field/Field.php

修改前:

public function updateRelations() {
.....
case 'Illuminate\Database\Eloquent\Relations\BelongsToMany':

$old_data = $this->relation->get()->modelKeys();
$new_data = explode($this->serialization_sep, $data);

$this->relation->detach($old_data);

if ($data=='') {
continue;
}
.....

修改后:

public function updateRelations() {
case 'Illuminate\Database\Eloquent\Relations\BelongsToMany':
.....
$old_data = $this->relation->get()->modelKeys();
//  $data 改成 $this->new_value
$new_data = explode($this->serialization_sep, $this->new_value);

$this->relation->detach($old_data);

//判断条件修改
if (empty($this->new_value)) {
break;
}
......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  laravel zofe/rapyd