【发布时间】:2020-10-28 15:12:58
【问题描述】:
我正在使用 Laravel 8 并且我正在创建一个自定义外观,但我无法使用 LogActivity::log($payload) 调用它,而只能使用 LogActivityFacade::log($payload)。
看不出我的错在哪里...
app\Helpers\LogActivityFacade.php
<?php
namespace App\Helpers;
use Illuminate\Support\Facades\Facade;
class LogActivityFacade extends Facade
{
protected static function getFacadeAccessor()
{
return 'logactivity';
}
}
app\Helpers\LogActivityHelper.php
<?php
namespace App\Helpers;
use App\Repositories\LogActivityRepository;
class LogActivityHelper
{
public function log($payload)
{
$repository = new LogActivityRepository();
$repository->store($payload);
}
}
app\Providers\LogActivityServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\Facades\App;
use App\Helpers\LogActivityHelper;
use Illuminate\Support\ServiceProvider;
class LogActivityServiceProvider extends ServiceProvider
{
/**
* Register services.
*
* @return void
*/
public function register()
{
$this->app->bind('logactivity', function() {
return new LogActivityHelper();
});
}
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
//
}
}
config/app.php
在提供者数组中
[...]
App\Providers\LogActivityServiceProvider::class,
在别名数组中
'LogActivity' => App\Helpers\LogActivityFacade::class,
我也尝试了composer dump-autoload 和php artisan config:clear,但我只能使用LogActivityFacade::log() 而不是LogActivity 来访问Facade(并且它有效...)。
【问题讨论】: