カスタム関数追加してみたよ@Laravel5
お疲れ様です。
FuelやCakeとは異なって、既存でのHTMLヘルパーがないLaravel5では、 laravelcollective を使用しますね。 ただ、それを使用しても cssやjsのタグは自分でタグを書かなければなりません。 ※もしあったら教えてください
ということで、自分で作りました。
1. /custome_helplers/form_builder.php
ファイル名は適当で良いです。
<?php if(!function_exists('asset_css')) { /** * Create link tag element for css * * @param string $file_name * @param bool $secure = false * @return string link_tag */ function asset_css($file_name, $secure = false) { if (is_array($file_name)) { $tag = ''; for ($i = 0; $i < count($file_name); $i++) { $relative_file_path = '/assets/css/' . $file_name[$i] . '.css'; $tag .= make_tag($secure, 'link', $relative_file_path, ['rel' => 'stylesheet']) . '\n'; } } else { $relative_file_path = '/assets/css/' . $file_name . '.css'; $tag = make_tag($secure, 'link', $relative_file_path, ['rel' => 'stylesheet']); } return $tag; } } if(!function_exists('asset_js')) { /** * Create link tag element for javascript * * @param string $file_name * @param bool $secure = false * @return string script_tag */ function asset_js($file_name, $secure = false) { if (is_array($file_name)) { $tag = ''; for ($i = 0; $i < count($file_name); $i++) { $relative_file_path = '/assets/js/' . $file_name[$i] . '.js'; $tag .= make_tag($secure, 'script', $relative_file_path, ['type' => 'text/javascript']) . '\n'; } } else { $relative_file_path = '/assets/js/' . $file_name . '.js'; $tag = make_tag($secure, 'script', $relative_file_path, ['type' => 'text/javascript']); } return $tag; } } if(!function_exists('make_tag')) { /** * Create link tag * * @param string $tag_header * @param string $relative_file_path * @param string $attr = ''(array) * @return string script_tag */ function make_tag($secure, $tag_header, $relative_file_path, $attr = '') { $file_full_name = asset($relative_file_path, $secure); $abs_file_path = public_path($relative_file_path); $timestamp = filemtime($abs_file_path); $tag_attr = ' '; if(is_array($attr)){ foreach ($attr as $key => $value) { $tag_attr .= $key . '="' . $value . '" '; } } else { $tag_attr .= $attr; } switch ($tag_header) { case 'link': $tag_file_name = ' href="' . $relative_file_path . '" '; $tag_end = ''; break; case 'script': $tag_file_name = ' src="' . $relative_file_path . '?' . $timestamp . '" '; $tag_end = '</' . $tag_header . '>'; break; default: $tag_file_name = ''; $tag_end = ''; break; } $tag_begin = '<' . $tag_header . $tag_file_name . trim($tag_attr) . '>'; $tag = $tag_begin . $tag_end; return $tag; } }
2. public/index.php
追記するよ
require __DIR__.'/../custome_helplers/form_builder.php';
こんな感じで使うよ
<head> <meta charset="utf-8"> <title>@yield('title')</title> <link rel="stylesheet" href="/assets/css/style.css"> {!! asset_css('style') !!} {!! asset_js('vue.min') !!} </head>