在 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()}}
我在 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()}}