0

我在App名为Helper.php.

应用程序/Helper.php

<?php

namespace App;

use Illuminate\Support\Facades\DB;

class Helper {

    public function get_username($user_id) 
    {
        $user = DB::table('users')->where('userid', $user_id)->first();

        return (isset($user->username) ? $user->username : '');
    }
}

应用程序/提供者/HelperServiceProvider.php

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class HelperServiceProvider extends ServiceProvider
{
    public function boot()
    {
        //
    }

    public function register()
    {
        require_once app_path() . 'Helper.php';
    }
}

配置/app.php

在提供者的数组中......

App\Providers\HelperServiceProvider::class,

aliases数组里面...

'Helper' => App\Helper::class,

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

ErrorException 抛出消息“不应静态调用非静态方法 Helper::get_username($user->id)

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

4

1 回答 1

0

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

在 Laravel 中,创建一个像 Laravel 那样包含帮助程序的文件并通过 composer 自动加载该文件通常更方便。

请在此处查看更多详细信息

于 2019-01-21T22:30:36.610 回答