lalala_s
@lalala_s (shun)

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!

教えてPHP

解決したいこと

Laravelで作業しております。
Controller側で変数を定義してBladeに渡したのですが、
定義されていないとエラーで出てしまっています。

趣味でいじっており、初心者程度の知識です。。コードが汚くて申し訳ございません。。
私が思うに、変数errorと変数resultの内容が変わらないのに
なぜ変数resultだけエラーが出るのかわかりません。

ご教授お願いいたします。

発生している問題・エラー

$result is undefined
Make the variable optional in the blade template. Replace {{ $result }} with {{ $result ?? '' }}
上記のエラーが出てしまいます。

該当するソースコード


public function answer(Request $request){
        if(isset($request -> numeric)){
            $number = ['numeric' => $request->numeric];

            $times = ['result' => "fhfffggggg"];

            $errors = ['error' => ""];
            return view('answer', $number, $errors, $times);

        }else{
            $number = ['numeric' => ""];

            $times = ['result' => ""];

            $errors = ['error' => 'ERROR : 開始時刻を入力してください'];

            return view('answer', $number, $errors, $times);
        }
    }

Contrlloer側↑

Blade側↓


<body>
    <p>{{$numeric}}</p>

    <p>{{$result}}</p>

    <p>{{$error}}</p>
</body>

0

2Answer

使用しているLavaelのバージョンがわかりませんが、8.xではデータを渡す方法は次の2つがあります。

// 第2引数に連想配列を渡す
return view('greetings', ['name' => 'Victoria']);


// with()で渡す
return view('greeting')
            ->with('name', 'Victoria')
            ->with('occupation', 'Astronaut');

ドキュメントの「ビューにデータを渡す」に記載があります。

上の「第2引数に連想配列を渡す」例だと、$nameという変数が渡され、値は「Victoria」になります。

<p>{{ $name }}</p><!-- Victoria -->

view()のコードを見ても、記載のコードのように渡せるようになっていないため、
もしかしたら参考にされた記事で使用していたのが古いバージョンだったのかもしれません。
(古いバージョンの仕様は把握できていませんので推測です)

なぜ変数resultだけエラーが出るのか

return view('answer', $number, $errors, $times);

まず2つ目の引数として$numericは渡せていそうです。
そして、3つ目の引数として渡したデータは、2つ目の引数とマージされます。
つまり['numeric' => xxx, 'error' => xxx]が最終的に渡されたデータになっていると思います。
4つ目の引数は定義されていないので無視され、その結果$resultだけがが無い、ということになります。

3Like

Comments

  1. @lalala_s

    Questioner

    ありがとうございます。
    参考にします。

    また明日、コメントします!ありがとうございました!
  2. @lalala_s

    Questioner

    ご協力ありがとうございます。
    Laravel ver.6の古いものを参考にし作成してました。。。
    あと自分の解釈もおかしかったです。
    お陰様で、解決できました!
    感謝感激です。

This answer has been deleted for violation of our Terms of Service.

Your answer might help someone💌