gpt4 book ai didi

php - 删除多个文件

转载 作者:行者123 更新时间:2023-11-29 16:24:12 25 4
gpt4 key购买 nike

我有点卡在这里,感谢任何帮助:

所以我有一个包含主题和子主题的表格。每个主题都有很多子主题,我希望能够销毁一个主题,而所有子主题都会随之消失。

我用这个 Controller 做到了这一点:

public function destroy()
{
$comtheme = Theme::findOrFail(request('idDelTCom'));
$comtheme->delete();
$comfiles = Subtheme::where('comtheme_id', '=', request('idDelTCom'));
$comfiles->delete();

return back();
}

哪个有效。我的问题如下:

每个子主题都有关联的文件。当我删除单个子主题时,我可以使用以下方法删除文件:

unlink(storage_path('app/public/com/checklists/'.$file));

我也尝试过这样做,但行不通。我认为问题出在我的查询上,但我无法解决我必须在这里做的事情...

如果我无法解决这个问题,我将阻止删除主题,直到删除所有子主题,但最好删除所有子主题。

提前致谢!

最佳答案

在您的主题模型上使用观察者。有很多方法可以实现这一点,但我更喜欢在模型类本身中声明它,因此在主题模型的类中放置以下内容:

protected static function boot()
{
parent::boot();
static::observe(ThemeObserver::class);
}

当然,顶部会有一个指向您的 ThemeObserver 类的 use 语句,将该类放置在项目中您喜欢的位置,以及您的模型或专用观察者目录。

ThemeObserver 类中,您需要一个用于删除的事件,如下所示:

public function deleting(Theme $theme)
{
// delete subthemes here
}

您可以为您的子主题设置一个类似的观察器,在其中删除与其关联的文件,或者直接在此处执行此操作。

https://laravel.com/docs/5.7/eloquent#observers

关于php - 删除多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54351746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com