gpt4 book ai didi

php - 我应该怎么做才能符合 MVC 范式?

转载 作者:搜寻专家 更新时间:2023-10-31 21:47:45 26 4
gpt4 key购买 nike

现在,我正在使用 PHP/Laravel 进行编程,但我认为这可能适用于任何其他 MVC 框架。我将使用 PHP/Laravel 语法。

我有一个需要非常基本的审计跟踪的应用程序。数据库中的审计表(audit_event)是这样的:

(id, user_id, event_id, description, occured_at)

如您所料,user_id 是导致 event_id 的用户。 description 在这里,如果你需要更详细的话,occured_at 是事件的时间戳。

现在,我创建了一个与用户和事件有关系的 AuditEvent 模型。我还写了从UserEventAuditEvent的关系。

编写审计事件的函数很简单:

public static function audit($event, $description = "") {
$id = \Auth::user()->id;

$ae = new AuditEvent();
$ae->user_id = $id;
$ae->event_id = $event;
$ae->description = $description;
$ae->save();

return null;
}

我的问题是……这个函数应该放在哪里?它应该在模型中,还是应该创建一个 Controller AuditEventController 并将其放在那里?

当我调用函数时,我必须包含

use \App\Controllers\AuditEventController

并调用它

AuditEventController::audit(5, "whatever")

我知道将函数放在模型中也可以,但是......要符合 MVC 的正确做法是什么?

最佳答案

如何遵循 MVC 架构完全取决于您。 Laravel 没有明确提供模型位置,以便开发人员可以决定。话虽如此,因为这是将要进行 CRUD 操作的东西,所以它可以放在模型中。

您将在 Controller 中运行检查,如果一切通过,您将在模型中传递对审计方法的引用。

你提到你需要包含 use\App\Controllers\AuditEventController ,所以我会说把它放在你的 Controller 中并创建将它保存在你的模型中的实际方法。

关于php - 我应该怎么做才能符合 MVC 范式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53752183/

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