“全局”是指我可以在页面和布局上的任何地方调用的函数,而无需在我应该使用它们的每个地方重复使用
答案 0 :(得分:0)
在这里尝试注册功能
\System\Classes\MarkupManager::instance()->registerCallback(function($manager){
$manager->registerFunctions([
'myFunction' => function($param1){
return "Hello " . $param1;
},
]);
]);
在布局页面调用中
{{ myFunction('world!') }}
用于laravel中的全局功能
在应用程序文件夹
app/helpers.php
中创建helpers.php文件
if (! function_exists('showMessage')) {
function showMessage($message = null)
{
return $message;
}
}
添加composer.json文件以自动加载
"autoload": {
"files": [
"app/helpers.php"
],
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
}
},
转储作曲家
composer dump-autoload
要了解更多信息,请阅读此tutorial
答案 1 :(得分:0)
创建全局函数文件是直接从作曲家自动加载。
创建一个functions.php
文件,在本示例中,我们将在app/Helpers
内部创建它。
添加功能
<?php
function global_function_example($str)
{
return 'A Global Function with '. $str;
}
在composer.json
部分的autoload
中添加以下行:
"files": ["app/Helpers/functions.php"]
运行composer dump-autoload
您现在可以在应用程序中的任何位置访问 global_function_example('hello world')表单,这是一种方便的方法来检入blade file
:
{{ global_function_example('hello world') }}
答案 2 :(得分:0)
您可以创建自己的自定义插件,并在Plugin.php中使用registerMarkupTags
public function registerMarkupTags()
{
return [
'functions' => [
'currentUrl' => function () {
return request()->getRequestUri();
},
'currentUrlFull' => function () {
return URL::to(request()->getRequestUri());
},
'ip' => function () {
return Request::ip();
}
]
];
}