<?php
namespace App\Helpers;
class AppHelper
{
public function bladeHelper($someValue)
{
return "increment $someValue";
}
public function startQueryLog()
{
\DB::enableQueryLog();
}
public function showQueries()
{
dd(\DB::getQueryLog());
}
public static function instance()
{
return new AppHelper();
}
}
用法
在控制器中
在控制器中,您可以调用各种函数
public function index()
{
//some code
//need to debug query
\App\Helpers\AppHelper::instance()->startQueryLog();
//some code that executes queries
\App\Helpers\AppHelper::instance()->showQueries();
}
在刀片文件中
假设您在一个刀片文件中,下面介绍了如何调用应用程序刀片助手函数
some html code
{{ \App\Helpers\AppHelper::instance()->bladeHelper($value) }}
and then some html code
9条答案
按热度按时间yrdbyhpb1#
溶液
一种方法是创建一个类并使用它的示例,这样您不仅可以在控制器、刀片或任何其他类中访问该类的对象。
应用帮助程序文件
在您的应用程序文件夹中创建一个名为Helpers的文件夹,并在其中创建一个名为AppHelper或您选择的任何名称的文件
用法
在控制器中
在控制器中,您可以调用各种函数
在刀片文件中
假设您在一个刀片文件中,下面介绍了如何调用应用程序刀片助手函数
减少命名空间的开销(可选)
您还可以通过在config\app.php中为AppHelper类创建别名来减少调用完整函数名称空间**\App\Helpers**的开销
在你的控制器或者刀片文件中,你可以直接调用
ryevplcw2#
简易解决方案:
1.在
app
目录中创建新的Helpers
文件夹。1.在该
Helpers
目录中创建一个名为your_helper_function.php
的php
文件。1.在
your_helper_function.php
中添加函数1.将此文件添加到
composer.json
的Files
密钥,如下所示1.最后,重新生成composer自动加载文件。(在项目目录中运行此操作)
就是这样!现在您可以在Laravel项目的任何部分访问
your_function()
或your_another_function()
。如果您仍然有任何困惑,请查看我的博客文章如何做到这一点:
How to Add a Global Function in Laravel Using Composer?
tpxzln5u3#
将命名空间和类添加到Helper.php
在config/app.php文件中注册这个Helper.php文件
现在,在Helper.php中编写所有函数,这样就可以在任何地方访问它。
步骤1-在控制器顶部添加一个名称空间。
第2步-调用函数-假设Helper类中有一个getInformation()。
gkl3eglg4#
在你的
Controller.php
whichextends BaseController
中,你可以创建一个函数,比如:和从任何控制器发送数据到视图时;
可以从所有控制器和刀片访问主控制器中的数据。
o0lyfsai5#
Laravel服务提供商的方式
我在Laravel中使用全局函数已经有一段时间了,我想分享一下我是怎么做的。这篇文章中有两个答案:https://stackoverflow.com/a/44021966/5543999和https://stackoverflow.com/a/44024328/5543999
这种方式将在ServiceProvider中加载文件,并在您的Laravel应用中注册它。
区别在哪里,范围,总是关于范围。
这是一个非常简单的方法来解释我的观点,所有三个方法都将达到"全局函数"的目的。Traits方法将需要您声明
use App\Helpers\Trait;
或App\Helpers\Trait::function()
。编写器和服务提供者几乎是一样的。对我来说,他们更好地回答了什么是全局函数的问题,因为他们不需要在每个你想使用它们的地方声明它们。你只需要使用它们
function()
。主要的区别是你喜欢的东西。如何
1.创建函数文件:App\Functions\GlobalFunctions.php
1.创建服务提供程序:
1.打开新文件App\Providers\GlobalFunctionsServiceProvider.php并编辑注册方法
1.将您的提供程序注册到App\Config\App.php的提供程序中
1.运行一些工匠的命令
1.使用新的全局函数
8nuwlpux6#
Laravel默认使用名称空间,所以你需要按照答案中描述的方法来设置一个帮助文件。
虽然在你的例子中你想访问不同控制器中的方法,但有一个更简单的方法,在你的基本控制器
app/Http/Controllers/Controller.php
中添加一个方法,你可以在其他控制器中访问它们,因为它们扩展了它。k4emjkb17#
有几种方法,具体取决于您要添加的确切功能。
1)在Controller.php中创建一个函数,并让所有其他控制器扩展该控制器。
2)创建一个trait,trait可以为你做很多事情,保持你的控制器干净。我个人喜欢使用trait,因为它看起来很干净,让我的Controller.php不会被大量不同的代码行弄得一团糟。
hpxqektj8#
创建全局函数
在一个文件夹下创建一个Helpers.php文件,我们将其命名为“core”。
在composer.json中
在要使用它的文件中
如果你想调用你的函数而不需要命名空间前缀,那么就删除Helpers.php中的命名空间,但是我建议还是保留它。
贷方:https://dev.to/kingsconsult/how-to-create-laravel-8-helpers-function-global-function-d8n
uoifb46i9#
使用composer.json并将包含文件(globalhelper.php)的函数放到autoload〉files部分,然后运行
组合器转储自动装入
你可以访问文件(globalhelper.php)中的函数,而不需要调用类名,就像使用默认的php函数一样。