【发布时间】:2018-09-28 05:27:10
【问题描述】:
我正在为所有视图创建一个通用作曲家,但它不能正常工作。
在App/Http/ViewComposers 中为作曲家创建目录。
在ViewComposers 内创建一个MovieComposer.php。
namespace App\Http\ViewComposers;
use Illuminate\View\View;
class MovieComposer
{
public $movieList = [];
public function __construct()
{
$this->movieList = [
'Movie One',
'Movie Two',
'Movie Three',
'Movie Four',
'Movie Five'
];
}
public function compose(View $view)
{
$view->with('latestMovie', 'Hello');
}
}
为作曲家创建服务提供者
php artisan make:provider ComposerServiceProvider
在providers的config/app.php中注册ComposerServiceProvider
App\Providers\ComposerServiceProvider::class,
ComposerServiceProvider.php内的代码
namespace App\Providers;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
class ComposerServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
// View::share('latestMovie', 'Hello world');
View::composer('app', 'App\Http\ViewComposers\MovieComposer@compose');
// view()->composer('app', function($view){
// $view->with('latestMovie', 'Hello world');
// });
// view()->composer(
// 'app',
// 'App\Http\ViewComposers\MovieComposer'
// );
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
//
}
}
在此代码中,latestMovie 变量是在所有视图中使用的全局变量,但它不能正常工作。
错误。
错误异常 (E_ERROR) 未定义变量:latestMovie(查看:/home/rupendrakumardhiman/Projs/badass/resources/views/layouts/app.blade.php)(查看:/home/rupendrakumardhiman/Projs/badass/resources/views/layouts/app.blade。 php)
【问题讨论】:
标签: laravel