在 laravel blade 文件中写入 php 行的最佳做法是什么

What is the best practice for writing php row in laravel blade file

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

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

我知道,它弄乱了 MVC 规则,那么处理这种情况的最佳方法是什么?我也结帐扩展 Blade,但无法完全理解!

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

在您的应用程序根目录中创建一个 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"
        ]
    },

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

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

您可以将此视频数组包装在 class 中以使其使用起来更简单,您可以使用

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