我已经在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,
一切正常,但现在出现以下错误。
错误消息抛出的错误异常“非静态方法Helper :: get_username($ user-> id)不应被静态调用
但是当我添加static
关键字以使其正常工作时。静态和非静态方法有什么区别?
答案 0 :(得分:0)
别名使您可以访问刀片模板中的外观,而无需将其添加到模板中(请参见use语句)。通过Facade调用方法时,您将静态调用此方法,Facade将调用包含此方法的类的对象。
在Laravel中,创建包含Laravel一样的帮助程序的文件并通过composer自动加载该文件通常更为方便。