laravel viewcomposerが、適応されない
1. 【必須】やりたい・やりたかったこと
serviceproviderから、クロージャでviewcomposerを使って、view_messageという名前の変数をviewに送り、表示させたい。
2. 【必須】起きている問題やエラーメッセージ ※できるだけ詳細に書いてください
エラーメッセージ
Undefined variable: view_message (View: C:\xampp\htdocs\laravel\umarche\resources\views\hello\index.blade.php)
3. 【必須】ご自身で試されたこと ※できるだけ詳細に書いてください
エラー文から見て、view_messageを読み込めていないので、送り方に問題があると分析しました。
ただ、教材(PHPフレームワーク Laravel入門 第2版)に書いてあったテンプレートをコピペしたので、どういじったら解決できるのかまるでわかりません。
4. 関連するソースコードやスクリーンショット
1,serviceproviderの記述
<?php
namespace App\Providers;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
class HelloServiceProvider extends ServiceProvider
{
public function boot()
{
View::composer(
'hello.index', function($view){
$view->with('view_message', 'composer message!');
}
);
}
public function register()
{
//
}
}
2.viewにある、index.blade.phpの内容
<html>
<head>
<title>Hello/Index</title>
<style>
body {font-size:16pt; color:#999; }
h1 { font-size:50pt; text-align:right; color:#f6f6f6;
margin:-20px 0px -30px 0px; letter-spacing:-4pt; }
</style>
</head>
<body>
@extends('layouts.helloapp')
@section('title', 'Index')
@section('menubar')
@parent
インデックスページ
@endsection
@section('content')
<p>ここが本文のコンテンツです。</p>
<p>Controller value<br>'message' = {{$message}}</p>
<p>ViewComposer value<br>'view_message' = {{$view_message}}</p>
@endsection
@section('footer')
copyright 2020 tuyano.
@endsection
</body>
</html>
3.app.phpの、providerに、以下の文を書き加えました
App\Providers\HelloServiceProvider::Class
0