“view()->share(.)”我放置在ComposerServiceProvider文件的引导方法中不起作用。但是当我把它放到AppServiceProvider中时,它就能工作了。我还将ComposerServiceProvider添加到app.php文件中的"providers“部分。
错误:
ErrorException
Undefined variable: test (View: /Users/devtools/Projects/sites/laravel/resources/views/components/backend/sidebar/menu-list.blade.php)
http://localhost/tr/admin/settings有什么问题吗?谢谢你帮忙。
这是我的密码:
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
// ...
'providers' => [
/*
* Application Service Providers...
*/
App\Providers\ComposerServiceProvider::class,
],routers/web.php
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
{
"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缓存:清除“命令时,它给出了一个错误。我加了文件夹就没事了。
发布于 2021-01-01 18:28:30
试试这个:
View::composer('*', function($view)
{
$view->share('test', 'deneme');
});别忘了也要加上这一点:
use View;https://stackoverflow.com/questions/65532261
复制相似问题