我在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,一切正常,但现在我有了以下错误。
以“非静态方法($user->id)”消息引发的ErrorException不应静态调用。
但是,当我添加static关键字来发挥作用时,它的工作效果很好。静态方法和非静态方法有什么区别?
发布于 2019-01-21 22:30:36
别名使您可以访问刀片模板中的外观,而无需将其添加到模板中(vie use语句)。通过facade调用方法时,静态调用此方法,facade将调用包含此方法的类的对象。
在Laravel中,通常像Laravel那样创建一个包含帮助者的文件,并通过composer自动加载该文件。
https://stackoverflow.com/questions/54251643
复制相似问题