当前位置: 首页 > 知识库问答 >
问题:

在我的Laravel应用程序中放置在何处以及如何调用助手函数?

权兴为
2023-03-14

目前我有以下代码:

$image = Image::find($id);
$views = $image->views;
$image->views = $views + 1;
$image->save();

代码位于返回特定图像视图的函数中。问题是,每当用户请求此视图时,图像视图计数都应该增加,但是,我不喜欢在返回视图的函数中使用此逻辑,因此我希望创建一个:

public function updateImageViews() {
    logic that updates views;
}

在我的控制器中的某个地方(我一直在考虑把它放在我的ArtworkController中),然后在我的函数中调用返回视图的函数

现在我想知道这是否是一个好方法。问题是,我不认为这将工作到现在,因为我不认为我被允许从另一个控制器调用函数,而不先做一些事情。

共有1个答案

韦俊英
2023-03-14

对于更复杂的事情,你使用服务。你把业务逻辑或复杂的操作放在那里。然后,您可以在其他服务或多个控制器中调用此服务——无论您需要什么。

关于上面的代码,它实际上可以重构成一行,所以可能不需要将它提取到其他方法中。简化的代码如下所示:

Image::find($id)->increment('views');

但是,如果您真的想在某个地方提取代码,我将使用静态方法为这种简单的代码模型(在本例中为Image):

public static function updateViews($id)
{
    $image = static::find($id);
    $views = $image->views;
    $image->views = $views + 1;
    $image->save();

    return $image;
}
 类似资料:
  • 问题内容: 在我的Web应用程序中,我必须将电子邮件发送给一组预定义的用户,例如,因此我希望将其添加到文件中并在需要时进行访问。这是正确的过程吗?如果是这样,那我应该把这个文件放在哪里?我正在使用Netbeans IDE,它具有用于源文件和JSP文件的两个单独的文件夹。 问题答案: 这是你的选择。Java Web应用程序归档(WAR)中基本上有三种方式: 1.将其放在类路径中 这样就可以使用相对于

  • 问题内容: 我们已经发布了几年前基于JDK 5开发的分布式Web应用程序。 JMX将如何帮助该应用程序? 1)它可以帮助我监视性能(内存,CPU,网络和磁盘IO)吗? 2)如果是这样,则应用程序部署在多台服务器中,如何在一个仪表板中进行监视? 3)是否必须对现有应用程序进行任何新的代码更改,或者可以在不更改代码的情况下进行监视? 4)除了性能监控,我们还能做什么?由于名称是Management E

  • 环境 我使用MacOSXYosemite,MAMP版本(3.0.7.3)。 文档根 我已经将文档根目录设置为指向我的文件夹。 许可证 有些人建议我完全chmod我的laravel文件夹,我也通过运行来实现这一点。 测试 转到:http://localhost:8888/,我得到的只是空白 我怎么才能让这个工作?

  • 问题内容: 我正在为我的游戏创建一个关卡编辑器,但在将LwjglCanvas与JFrame一起使用时遇到了问题。我使用JFrame(而不是LwjglFrame)来保持引擎和关卡编辑器尽可能独立。我有两个JAR:WorldEditor.jar和GameEngine.jar。在WorldEditor内部,我有一个名为“测试”的按钮,该按钮假设是将GameEngine.jar(如果尚未加载)加载并将其启

  • 我正试图在游戏中首次发布Android应用程序。谷歌。com使用应用程序包。该应用程序在Android Studio中使用Flatter SDK实现,并使用以下命令生成捆绑包: 当我将捆绑包上传到Google Play控制台时,我收到以下警告: 我观察到很多人提出了类似的问题,但我无法找出这个问题的确切原因以及如何解决这个问题。 通过修改如下 开始给我以下错误:

  • 问题内容: 如何在Java GWT应用程序中使用OAuth?特别是,我想使用以下API获取我的Google Aps域中的用户列表: http://code.google.com/googleapps/domain/profiles/developers_guide_protocol.html 我知道这听起来像是一个问题,以前可能已经问过很多次了,但是我找不到关于如何实现上述API中描述的OAuth