实体中的助手
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 个可能更适合。
假设我有一个 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 个可能更适合。