删除控制器或模型中的文件方法?

克里斯

我正在使用Laravel 4制作一个Web应用程序,在此应用程序中我有一些文章。每篇文章都有多个图片。现在,当我要删除一篇文章时,我还必须删除属于该文章的图像。我想知道应该在哪里放置Image delete方法。我可以将其放在商品控制器,图像控制器或图像模型中。

由于我还必须能够在不触摸文章的情况下单独删除图像,因此让文章控制器删除文件没有任何意义。那么放在哪里呢?图片模型还是图片控制器?我认为是图像模型。

编辑:我使用Laravel ORM,所有文章都链接到其图像。删除一篇文章也会从数据库中删除所有图像。我只是想知道从文件系统中删除的位置。

金宝

首先,模型是一个它不是多元的-您可以在此处了解更多信息:php-在MVC中应如何构建模型?

如果您使用的是MySQL数据库,则可以查看ON CASCADE DELETE-它将删除数据库中与本文相关的所有图像。如果您不想在db端执行此操作,则可以查看Entity \ Repository模式,这可以通过使用像Doctrine这样的ORM轻松实现这将允许您为php端版本的注释“实体”(具有类成员,属性和一些getter / setter的域对象)ON CASCADE DELETE

您的控制器不应执行任何业务逻辑在模型层中执行此操作-这意味着您的控制器将仅调用方法并从模型层获取响应

总之,可以在数据库中或通过ORM的注释(例如,学说)您的文章和图像(实体)链接起来,这样,当您删除一个文章和图像(实体)时,其他的也会被删除。

最后,如果这对您来说太多了,请在执行文章(实体)的删除(存储库)时,放置代码以删除图像在同一文件中。


添加:如果图像路径未存储在数据库中,并且您确实要删除物理文件,则您应该编写一个具有处理文件删除责任的外部服务(类)然后,删除文章的代码将调出该服务。这意味着您的代码将更具测试性,并且您可以引发自定义异常来确定出了点问题(例如无法删除图像)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails 控制器中的模型方法

来自分类Dev

控制器根据模型变量删除表中的行

来自分类Dev

Rails:在不同控制器中调用模型中的方法

来自分类Dev

laravel 5.2-控制器方法中的访问模型

来自分类Dev

在Codeigniter中命名控制器和模型的最佳方法

来自分类Dev

访问控制器中模型方法内定义的变量。

来自分类Dev

Rails-在控制器中调用模型方法

来自分类Dev

在“模型”或“控制器”中在哪里编写此方法?

来自分类Dev

如何从Swagger文档方法中删除控制器名称

来自分类Dev

从视图控制器引用模型的方法

来自分类Dev

Rails调用方法控制器与模型

来自分类Dev

从控制器访问模型方法

来自分类Dev

在控制器内调用方法模型

来自分类Dev

如何在laravel 4.1中的控制器中调用模块的模型和控制器文件

来自分类Dev

iOS中的模型-视图-控制器

来自分类Dev

控制器动作中的访问模型?

来自分类Dev

控制器中的Cakephp模型常数

来自分类Dev

绕过控制器中的模型验证?

来自分类Dev

Laravel控制器中的多个模型

来自分类Dev

Dymola中的模型控制器

来自分类Dev

绕过控制器中的模型验证?

来自分类Dev

iOS中的模型-视图-控制器

来自分类Dev

模型或控制器中的代码

来自分类Dev

控制器动作中的访问模型?

来自分类Dev

控制器中的Cakephp模型常数

来自分类Dev

在Ember中获取模型的控制器

来自分类Dev

模型或控制器中的MVC变量?

来自分类Dev

Spring MVC中控制器方法参数中的模型模型

来自分类Dev

Laravel删除在控制器中工作但不在模型关闭中的缓存