Laravel 5.6 中的自定义助手
Posted
技术标签:
【中文标题】Laravel 5.6 中的自定义助手【英文标题】:Custom Helpers in Laravel 5.6 【发布时间】:2019-02-02 16:27:55 【问题描述】:我正在尝试在 Laravel 5.6 中创建自定义助手
我的助手路径是 app\Helpers\ReadExcel.php
以下是我的帮助文件:
<?php
namespace App\Helpers;
class ReadExcel
public static function index($id)
echo $id;
?>
My Helper的服务商如下
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class ReadExcelServiceProvider extends ServiceProvider
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
//
/**
* Register services.
*
* @return void
*/
public function register()
require_once app_path() . '/Helpers/ReadExcel.php';
在config\app.php
中进行了以下更改
在提供者数组中:
App\Providers\ReadExcelServiceProvider::class,
In aliases array:
'ReadExcel' => App\Helpers\ReadExcel::class,
我正在尝试在我的控制器方法中使用帮助器,如下所示:
use ReadExcel;
public function read()
ReadExcel::index(3);
我得到如下错误:
找不到类“ReadExcel”
请帮我解决这个问题。我不知道错在哪里。
【问题讨论】:
您不需要服务提供者来注册您的助手类。相反,只需在config/app.php
中添加一个别名,例如 'ReadExcel' => 'App\Helpers\ReadExcel',
我已经在自己的设置中尝试过这个,它可以工作。尝试清除配置缓存(通过运行 'Php artisan config:clear' 命令)。这可能会对您有所帮助。
我不确定,但请尝试在您的控制器中导入该类。或者,在控制器中使用类的完整路径。
【参考方案1】:
Helpers 定义了像str_slug('Slug Name')
这样的简单函数,而不是类。定义完所有简单函数后,可以将其添加到composer.json
中进行注册,而不是使用ServiceProvider
。
您可以在composer.json
文件的autoload
部分中注册您的Helper 函数,如下所示,
"autoload":
"files": [
"app/Helpers/ReadExcel.php"
],
...
【讨论】:
以上是关于Laravel 5.6 中的自定义助手的主要内容,如果未能解决你的问题,请参考以下文章