在laravel刀片文件中编写php行的最佳做法是什么?

时间:2017-04-28 18:22:21

标签: laravel-5.4 laravel-blade

我在laravel 5.4中使用Youtube api,为了转换youtube持续时间,我在刀片文件中使用了内联php,如下所示:

<?php
     $duration = $video['items'][0]['contentDetails']['duration'];
     $duration = str_replace(array("PT","M","S"), array("",":",""), $duration);
?>
{{ $duration }}

我知道,它搞砸了MVC规则,那么处理这种情况的最佳方法是什么?此外,我结帐Blade,但无法完全理解!

1 个答案:

答案 0 :(得分:0)

您可以简单地创建一个辅助函数来格式化此持续时间字段。

在您的应用根目录中创建一个app/helpers.php文件并添加此方法

if (! function_exists('format_video_duration')) {
    function format_video_duration($duration)
    {
        return str_replace(array("PT","M","S"), array("",":",""), $duration);
    }
}

之后在composer.json中加载帮助程序:

"autoload": {
        // ..
        "files": [
            "app/helpers.php"
        ]
    },

然后在您的刀片文件或任何您想要的地方使用它

{{ format_video_duration($video['items'][0]['contentDetails']['duration']) }}

你可以将这个视频数组包装在一个类中,以便更简单地使用它,你有类似的东西

{{$video[0]->contentDetails()->formatDuration()}}