在TP5中怎样同时删除数据库和上传到服务器上的文件:
模型中定义方法如下
<?php
namespace app\admin\model;
use think\Model;
class Pic extends Model
{
public function unlink($path)
{
return is_file($path) && unlink($path);
}
}
然后在控制器中调用你的方法,建议$path在控制器中用绝对路径,
在控制器中引入空间类元素:
use think\File;
use app\admin\model\Pic as PicModel;//防止类名字重复报错,起一个别名
然后在方法里实例化,然后调用方法即可:
public function del()
{
$id=input('id');//返回的结果为获取的id
$lunbotu=db('lunbotu')->find($id);//获取一条数据,这里可以dump()数据,返回结果为数组,访问数组中文件的存放信息的字段,这里是Pic
$path='../public/static/uploads/'.$lunbotu['Pic'];//定义文件存放的路径
$unlink=new PicModel();//实例化
if($unlink->unlink($path) && db('lunbotu')->delete(input('id')))
{
return redirect('pic');//重定向到你想要的界面
}
else
{
$this->error('删除轮播图失败');
}
}