实体中的助手

helpers in Entity

假设我有一个 User 模型,在我的应用程序中,我需要在他的个人资料中显示他的头像和 link。

现在我发现使用虚拟属性非常有用。所以在我的 User 实体文件中我做了类似的事情:

protected function _getAvatar()
{
    return "<a href='users\profile".$this-id."'><img src='".$this->avatar_url."'></a>";
}

所以每次我需要在视图中显示头像时,我只需要写

<?= $user->avatar ?>

(这只是一个简化的例子来理解这个想法,而不是实际的代码)

我的问题是:如何在我的 User.php 文件中使用 Html 助手?

但是另一个问题出现了:即使上面的代码非常方便,但在我看来它打破了 MVC 模式。那么这是获得我需要的东西的正确方法吗?

您的怀疑是有充分理由的,这真的不是应该的做法。

让实体以这样或那样的方式改变数据是一回事,但是表示逻辑,不,那真的太多了,助手是为了视图!现在,只需使用自定义助手、单元格或元素,然后将您的实体传递给它们即可。

将来可能有 entity presenters 个可能更适合。