如何在 Laravel 5 中创建全局辅助函数?

2021-12-18 00:00:00 php laravel-5 blade controllers helpers

如果我想为一些 oauth 的东西制作一个 currentUser() 函数,我正在做的地方我可以在视图或控制器中使用它(想想 rails,你在哪里做 helper_method: current_user 在应用程序控制器中).

If I wanted to make a currentUser() function for some oauth stuff I am doing where I can use it in a view or in a controller (think rails, where you do helper_method: current_user in the application controller).

我读到的所有内容都说明创建一个 helpers 文件夹并在那里添加函数,然后你就可以这样做 Helpers::functionName 这是正确的方法吗?

Everything I read states to create a helpers folder and add the function there and then that way you can do Helpers::functionName Is this the right way to do this?

创建可在刀片模板和控制器中使用的辅助函数的laravel 方式"是什么?

Whats the "laravel way" of creating helper functions that can be used in blade templates and controllers?

推荐答案

在您的 app/Helpers 目录中创建一个新文件,将其命名为 AnythingHelper.php我的助手的一个例子是:

Create a new file in your app/Helpers directory name it AnythingHelper.php An example of my helper is :

<?php
function getDomesticCities()
{
$result = AppPackage::where('type', '=', 'domestic')
    ->groupBy('from_city')
    ->get(['from_city']);

return $result;
}

通过以下命令为你的助手生成一个服务提供者

generate a service provider for your helper by following command

php artisan make:provider HelperServiceProvider

在你新生成的HelperServiceProvider.php的注册函数中添加如下代码

in the register function of your newly generated HelperServiceProvider.php add following code

require_once app_path('Helpers/AnythingHelper.php');

现在在你的 config/app.php 中加载这个服务提供者,你就完成了

now in your config/app.php load this service provider and you are done

'AppProvidersHelperServiceProvider',

相关文章