首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel不转ComposerServiceProvider类

Laravel不转ComposerServiceProvider类
EN

Stack Overflow用户
提问于 2021-01-01 18:00:22
回答 1查看 176关注 0票数 0

“view()->share(.)”我放置在ComposerServiceProvider文件的引导方法中不起作用。但是当我把它放到AppServiceProvider中时,它就能工作了。我还将ComposerServiceProvider添加到app.php文件中的"providers“部分。

错误:

代码语言:javascript
复制
ErrorException
Undefined variable: test (View: /Users/devtools/Projects/sites/laravel/resources/views/components/backend/sidebar/menu-list.blade.php)
http://localhost/tr/admin/settings

有什么问题吗?谢谢你帮忙。

这是我的密码:

代码语言:javascript
复制
namespace App\Providers;
use Illuminate\Support\ServiceProvider;

class ComposerServiceProvider extends ServiceProvider
{
    // ...

    public function boot()
    {
        // This code works when I put it in AppServiceProvider.php
        view()->composer('*', function ($view) {
            view()->share('test', 'deneme');
        });
    }
}

config/app.php

代码语言:javascript
复制
// ...
'providers' => [
  /*
   * Application Service Providers...
   */
   App\Providers\ComposerServiceProvider::class,
],

routers/web.php

代码语言:javascript
复制
Route::prefix(LaravelLocalization::setLocale() . "/admin")
    ->name('admin.')
    ->middleware(['localeSessionRedirect', 'localizationRedirect', 'localize', 'auth', 'verified'])
    ->group(function ()
    {
        Route::get('/', function () {
            return view('backend.home');
        })->name('home');
    });

composer.json

代码语言:javascript
复制
{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": [
        "framework",
        "laravel"
    ],
    "license": "MIT",
    "require": {
        "php": "^7.2.5|^8.0",
        "fideloper/proxy": "^4.4",
        "fruitcake/laravel-cors": "^2.0",
        "guzzlehttp/guzzle": "^6.3.1|^7.0.1",
        "laravel/framework": "^7.29",
        "laravel/tinker": "^2.5",
        "laravel/ui": "^2.4",
        "mcamara/laravel-localization": "^1.6"
    },
    "require-dev": {
        "almasaeed2010/adminlte": "~3.0",
        "facade/ignition": "^2.0",
        "fakerphp/faker": "^1.9.1",
        "mockery/mockery": "^1.3.1",
        "nunomaduro/collision": "^4.3",
        "phpunit/phpunit": "^8.5.8|^9.3.3"
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "classmap": [
            "database/seeds",
            "database/factories"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    }
}

,如您所见,这些是文件名和路径

解决办法:

问题是我删除了“

/framework/cache/”中的"data“文件夹。当我运行"php artisan缓存:清除“命令时,它给出了一个错误。我加了文件夹就没事了。

EN

回答 1

Stack Overflow用户

发布于 2021-01-01 18:28:30

试试这个:

代码语言:javascript
复制
    View::composer('*', function($view)
    {
        $view->share('test', 'deneme');
    });

别忘了也要加上这一点:

代码语言:javascript
复制
use View;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65532261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档