HTML 宏放在 laravel 5 的什么地方?
Where to put HTML macros in laravel 5?
在 laravel 4 中,我曾经有 HTML 在多个视图中使用的宏,例如:
HTML::macro('minipics', function($pic)
{
//
}
为此,我在 /app
文件夹中有一个 macros.php
文件。我找不到在 laravel 5 中放置宏的位置。我应该为此使用 'macroable' 功能吗?
编辑:
我最终使用了 @include()
,为其提供了所需的值。
@include('shared.minipics', $mpics = $ppics)
@include('shared.minipics', $mpics = $randpics)
您可以按照 Laravel 4 中的方法进行操作。
将您的 macros.php
文件放在 /app
文件夹中。
然后在你的composer.json
中你这样做
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\": "app/"
},
"files": [
"app/macros.php" <-- Put this here
]
},
我已将我的宏移动到 "resources/macros/..." 目录中,因为我认为它们属于所有其他与视图相关的代码。为了加载它们,我使用了一个看起来像这样的服务提供商:
<?php namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class MacroServiceProvider extends ServiceProvider {
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
require base_path() . '/resources/macros/macro1.php';
require base_path() . '/resources/macros/macro2.php';
// etc...
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
在 laravel 4 中,我曾经有 HTML 在多个视图中使用的宏,例如:
HTML::macro('minipics', function($pic)
{
//
}
为此,我在 /app
文件夹中有一个 macros.php
文件。我找不到在 laravel 5 中放置宏的位置。我应该为此使用 'macroable' 功能吗?
编辑:
我最终使用了 @include()
,为其提供了所需的值。
@include('shared.minipics', $mpics = $ppics)
@include('shared.minipics', $mpics = $randpics)
您可以按照 Laravel 4 中的方法进行操作。
将您的 macros.php
文件放在 /app
文件夹中。
然后在你的composer.json
中你这样做
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\": "app/"
},
"files": [
"app/macros.php" <-- Put this here
]
},
我已将我的宏移动到 "resources/macros/..." 目录中,因为我认为它们属于所有其他与视图相关的代码。为了加载它们,我使用了一个看起来像这样的服务提供商:
<?php namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class MacroServiceProvider extends ServiceProvider {
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
require base_path() . '/resources/macros/macro1.php';
require base_path() . '/resources/macros/macro2.php';
// etc...
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}