用这个扩展包的编辑场景有什么好的解决方式么?
编辑场景下,前端调用的是图片url,然后比如删除了几张图片,又添加了几张图片,这种场景下怎么写相应的逻辑比较好?
以下是目前我所写的流程,感觉比较丑,@liyu001989 老师能否说下有没有更好的解决办法?
public function update(Request $request, User $user)
{
$user->update($request->post());
$user->getMedia('photos')->each(function ($item) {
$item->setCustomProperty('is_delete', true);
$item->save();
});
collect($request->post('photos'))->each(function ($item) use ($user) {
if (isset($item['path'])) {
// 如果有path属性,说明是新上传的文件
$user->addMedia(Storage::path($item['path']))->toMediaCollection('photos');
}else{
// 否则是已经上传的文件
$user->addMediaFromUrl($item['url'])->toMediaCollection('photos');
}
});
$user->clearMediaCollectionExcept('photos',$user->getMedia('photos',['custom_properties.is_delete' !== true]));
$user->save();
return $this->created()
}
推荐文章: