【问题标题】:Creating and Accessing the Helper in the Controller在控制器中创建和访问助手
【发布时间】:2019-06-12 13:56:27
【问题描述】:

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

app/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 : '');
    }
}

app/Providers/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';
    }
}

config/app.php

在提供者的数组中...

App\Providers\HelperServiceProvider::class,

aliases 数组内部...

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

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

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

但是当我添加 static 关键字以使其正常工作时。静态方法和非静态方法有什么区别?

【问题讨论】:

    标签: php laravel laravel-5.7 laravel-controller


    【解决方案1】:

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

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

    Please check here for more details

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      • 1970-01-01
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多