public function doEdit($id = 0)
{
if(request()->isPost()){
// 获取所有提交的数据
$data = input('post.');
try {
$file = request()->file('img');
// 判断是否有文件上传
if($file){
$img = Db::name('news')->where('id', $id)->value('img');
// 如果数据库中有图片值,则删除物理图片
if($img){
$imgUrl = Env::get('root_path') . 'public/uploads' . $img;
if(file_exists($imgUrl)){
@unlink($imgUrl);
}else{
return resMsg(0,'图片物理路径不存在!');
}
}else{
return resMsg(0,'数据库中图片路径为空!');
}
// 获取图片
$info = $file->validate(['size'=>1024*1024,'ext'=>'jpg,jpeg,png,gif'])->move( '../public/uploads');
if($info){
$data['img'] = str_replace("\\","/",$info->getSaveName());
}
}
}catch (\Exception $e) {
}
// 数据验证
$validate = new newsValidate();
if(!$validate->scene('edit')->check($data)){
return resMsg(0,$validate->getError());
}
// 更新数据
try {
$newsModel = new NewsModel();
$result = $newsModel->allowField(true)->save($data,['id' => $id]);
if( $result){
return resMsg(1,'文章更新成功',url('lst'));
}else{
return resMsg(0,'文章更新失败');
}
}catch (\Exception $e) {
return resMsg(0,$e->getMessage());
}
}
}