【发布时间】:2019-01-17 21:15:53
【问题描述】:
这就是我创建助手的方式(App\Helpers\Settings.php)
namespace App\Helpers;
use Illuminate\Database\Eloquent\Model;
class Settings {
protected $settings = [];
public function __construct() {
$this->settings['AppName'] = 'Test';
}
/**
* Fetch all values
*
* @return mixed
*/
public function getAll () {
return $this->settings;
}
}
创建外观(App\Helpers\Facades\SettingsFacade.php)
namespace App\Facades;
use Illuminate\Support\Facades\Facade;
class Settings extends Facade {
protected static function getFacadeAccessor() {
return 'Settings';
}
}
创建服务提供者(App\Providers\SettingsServiceProvider.php)
namespace App\Providers;
use Illuminate\Support\Facades\App;
use Illuminate\Support\ServiceProvider;
class SettingsServiceProvider extends ServiceProvider {
/**
* Bootstrap the application events.
*
* @return void
*/
public function boot() {
}
/**
* Register the service provider.
*
* @return void
*/
public function register() {
App::bind( 'Settings', function () {
return new \App\Helpers\Settings;
});
} */
}
注册提供者(App\Providers\SettingsServiceProvider::class)
创建别名:'Settings' => App\Facades\Settings::class
运行composer dump-autoload
尝试使用门面Settings::getAll();
得到错误类'App\Http\Controllers\Settings' not found
不知道为什么我无法创建外观并收到该错误
【问题讨论】:
-
是因为命名空间,试试:
\Settings::getAll(); -
类 'App\Facades\Settings' 未找到
-
将
App\Helpers\Facades\SettingsFacade.php重命名为App\Helpers\Facades\Settings.php有助于拨打电话\Settings::getAll();但我该如何拨打Settings::getAll();之类的电话 -
如果你不想像
Settings::getAll();那样称呼它,你需要在文件顶部添加use Settings。
标签: php laravel laravel-5 laravel-5.4