在控制器中创建和访问帮助程序



我在名为 Helper.php 的文件夹中创建了一个帮助程序文件App

应用程序/助手.php

<?php
namespace App;
use IlluminateSupportFacadesDB;
class Helper {
    public function get_username($user_id) 
    {
        $user = DB::table('users')->where('userid', $user_id)->first();
        return (isset($user->username) ? $user->username : '');
    }
}

app/Providers/HelperServiceProvider.php

<?php
namespace AppProviders;
use IlluminateSupportServiceProvider;
class HelperServiceProvider extends ServiceProvider
{
    public function boot()
    {
        //
    }
    public function register()
    {
        require_once app_path() . 'Helper.php';
    }
}

配置/应用.php

在提供程序的数组中...

AppProvidersHelperServiceProvider::class,

aliases阵列内部...

'Helper' => AppHelper::class,

一切正常,但现在我有以下错误。

引发错误异常,并显示消息"不应静态调用非静态方法帮助程序::get_username($user->id)

但是当我添加static关键字来运行时,它的工作正常。静态方法和非静态方法有什么区别?

别名使您可以访问刀片模板中的立面,而无需将其添加到模板中(vie use 语句)。通过外观调用方法时,静态调用此方法,外观将调用包含此方法的类的对象。

在 Laravel 中,像 Laravel 那样创建一个包含助手的文件并通过作曲家自动加载该文件通常更方便。

详情请按此查看

相关内容

  • 没有找到相关文章

最新更新