From c2793f1fb2dcabdc223b40d723a7f79eb134de50 Mon Sep 17 00:00:00 2001 From: devlike Date: Thu, 8 Feb 2018 11:04:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E7=AB=A0=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E6=8A=8A=E6=96=87=E7=AB=A0=E5=8C=85=E5=90=AB=E7=9A=84?= =?UTF-8?q?=E9=99=84=E4=BB=B6=E3=80=81=E5=B0=81=E9=9D=A2=E7=AD=89=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E6=96=87=E4=BB=B6=E7=9A=84=E6=A0=87=E8=AE=B0=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E2=80=9C=E5=8F=AF=E5=88=A0=E9=99=A4=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extend/seven/behavior/ArchiveDel.php | 58 ++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 extend/seven/behavior/ArchiveDel.php diff --git a/extend/seven/behavior/ArchiveDel.php b/extend/seven/behavior/ArchiveDel.php new file mode 100644 index 00000000..7afbf423 --- /dev/null +++ b/extend/seven/behavior/ArchiveDel.php @@ -0,0 +1,58 @@ + + * @Since: 2018/1/28 10:27 + */ + +namespace seven\behavior; + +use app\admin\model\Archives; +use think\Model; + +class ArchiveDel +{ + public function run(&$params) + { + if ($params instanceof Archives){ + $pk = $params->getPk(); + $attachments = []; + array_push($attachments, $params['cover']); + //读取模型字段 + $extra = model('PostsModelx')->get(['name'=>$params['type']]); + if(isset($extra['extra']) && !empty($extra['extra'])) { + //读取模型数据 + $archive_model = model('extra' . $params['type'])->get(['item_id' => $params[$pk]]); + foreach (json_decode($extra['extra'],true) as $k=>$v) + { + if(!isset($archive_model[$v['field']]) || + (isset($archive_model[$v['field']]) && empty($archive_model[$v['field']]))) { + continue; + } + if($v['type']=='image'){ + array_push($attachments, $archive_model[$v['field']]); + } + elseif($v['type']=='images'){ + $arr = explode(",", $archive_model[$v['field']]); + $attachments= array_merge($attachments, $arr); + } + elseif(in_array($v['type'], ['file','files'])){ + $arr= json_decode($archive_model[$v['field']],true); + foreach($arr as $key=>$val){ + array_push($attachments, $val['url']); + } + } + } + } + model('extra' . $params['type'])->where(['item_id' => $params[$pk]])->delete(); + + //打上可删除标识 + foreach ($attachments as $k => $v){ + if(!empty($v)){ + model('Attachment')->where('url', $v)->update(['canDelete'=>1]); + } + } + } + } + +} \ No newline at end of file