首页 > 解决方案 > Laravel 5.4 – 创建外观时出错

问题描述

这就是我创建助手的方式(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

无法弄清楚为什么我无法创建外观并收到该错误

标签: phplaravellaravel-5laravel-5.4

解决方案


试试这个。

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;
        }
    }

应用程序/Http/Controllers/XyzController.php

use Facades\App\Settings;
class XyzController extends Controller
{
     public function showView()
     {
         return Settings::getAll();
     }
}

网页.php

Route::get('/','XyzController@showView');

use Facades\App\Helpers\Settings;

Route::get('/direct',function() {
    return Settings::getAll();
});

使用 laravel实时外观


推荐阅读