You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel删除本地存储图片报错Call to a member function delete() on string怎么解决

错误原因
  • 报错的直接原因是你对字符串类型的$destination调用了delete()方法,字符串本身不存在这个类方法
  • 代码逻辑中已经通过File::delete($destination)完成了本地图片文件的删除,后续写的$destination->delete()属于冗余的错误代码
  • 如果你是要删除数据库中对应的Autoridad记录,应该调用模型实例的delete()方法,而非路径字符串的方法
修复后的代码
public function destroy($id)
{   
    $autoridad = Autoridad::findOrFail($id); // 替换为findOrFail避免id不存在时触发后续报错
    $destination = public_path('imagen/'.$autoridad->imagen); // 用public_path生成绝对路径,避免相对路径匹配失败问题
    if(File::exists($destination)){
        File::delete($destination);
    }
    $autoridad->delete(); // 调用模型实例的delete方法删除数据库记录
    return redirect()->route('autoridades.index');
}
补充说明
  • 如果你的图片是存储在storage目录下,把public_path()替换为storage_path()即可,根据实际存储路径调整就行
  • 用框架自带的路径生成辅助函数,比手动拼接相对路径稳定性更高,不会因为项目入口文件位置变更导致路径找不到的问题

内容的提问来源于stack exchange,提问作者Martin2236

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:54:03