首页 > 解决方案 > Laravel 5 - 我应该在哪里编写这个函数,以及如何编写?

问题描述

晚上好,

我有一个概览页面,其中显示了我的所有项目项。

我有一个模型(Project.php)和一个控制器(ProjectController),我将变量$project(这包括每个项目的所有信息)发送到特定视图。

注意:每个项目在数据库中都有自己的行。(我猜很明显)

现在我还有一个与特定项目相关的表“任务”。在我看来,我想显示“完成”了多少总任务。(这与“完成”列(真/假,布尔值)有关)。

现在因为我的视图中有一个 foreach 函数(显示每个单独的项目),所以我可以在视图中创建该函数。但是 Laravel 框架的存在是有原因的。并且在视图中写出很多 php 不是正确的方法。

但是,我应该在哪里做这个功能?以及如何在我的 foreach 中使用它(在视图中)。当然,我可以在我的模型或控制器中创建一个新的 foreach 并将该变量发送到我的视图。但是我不能在我的 view-foreach 中使用那个,因为事情会变得混乱。

我不知道如何/在哪里可以以干净的方式设置这样的功能。

亲切的问候,

迪伦

标签: phplaravelviewmodelcontroller

解决方案


谢谢您的帮助。我已经想通了(我猜?)。

我的项目模型中有这个功能。

    public function getTaskDonePercentage($id) {
    $tasks = Task::where('project_id', $id)->count();

    $tasks_done = Task::where([
      ['project_id', $id],
      ['status', 'done']
    ])->count();

    if ($tasks_done > 0) {
      $calc = ($tasks_done / $tasks) * 100;
    }
    else {
      $calc = '100';
    }

    return round($calc) . '%';
  }

然后在我看来,我只是在 foreach 中调用该函数,例如:

@foreach
{{ $project_item->getTaskDonePercentage($project_item->id) }}
@endforeach

Tbh 我仍然想知道这种方法是否好。(或者,如果不是,为什么不是?)。

谢谢!


推荐阅读