NTR893
@NTR893 (おいなり)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

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)

タイトルなし.png

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

No Answers yet.

Your answer might help someone💌