我在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,但无法完全理解!
答案 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()}}