0

我看过关于演示者的 Laracasts 视频,我想在我的项目中使用它们。

我有一个显示用户活动日志的页面。在 foreach 循环中,我显示“活动”模型。活动使用多态关系,所以根据活动类型我需要显示不同类型的内容。例如,用户可以发送电子邮件、添加任务、创建某些内容、删除某些内容等。

根据操作,我应该显示不同的图标,不同的内容本身(一些活动可能包含链接,一些可能包含其他内容)。

当我观看和阅读演示者的示例时,我意识到它们都非常简单,并且使用了诸如ucfirst日期格式之类的东西。但是,我应该在我的演示者中加入大量 HTML 逻辑吗?例如,由于我对不同的操作有不同的图标,所以我放置了大开关,它返回<i>带有适当图标类的标签。然后,当显示操作的描述时,我也会切换并返回一些 html,比如链接,甚至可能是<audio>标签。

另外,在演示者中使用 HTML 也不方便,但同时我想保持视图干净,这样我就可以输出$activity->presenter()->description而不是很多@if运算符。

演示者方法的示例:

public function icon()
{
    switch ($this->entity->type->name) {
        case 'call': return '<i class="fa fa-phone activity-call-icon"></i>';
        case 'visit': return '<i class="fa fa-car activity-visit-icon"></i>';
        case 'email': return '<i class="fa fa-send activity-email-icon"></i>';
        case 'note': return '<i class="fa fa-pencil activity-task-icon"></i>';
        case 'create_checkin': return '<i class="flaticon-pin56"></i>';
        default: return '<i class="fa fa-dot-circle-o"></i>';
    }
}
4

0 回答 0