我在名为 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 那样创建一个包含助手的文件并通过作曲家自动加载该文件通常更方便。
详情请按此查看