コントローラから画面へのデータの受け渡しができません。
下記コントローラのregistUserメソッドで、画面遷移を行う際に、$nameという変数にセットしたデータを画面に渡すつもりでコードを書いていますが、画面側に渡したデータが表示されません。
試したこと
$nameに値が入っているかどうかを確認したところ、この変数には、渡したいデータがセットされていました。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests\FormValidateRequest; use Validator; class RegistController extends Controller { // public function regist(){ return view('regist'); } public function registUser(FormValidateRequest $request){ /* データベースへの登録処理を行う */ $name = $request->only('name'); return view('home', compact('name')); } }
画面側のコード(コンポーネント)
<header> <div class="header-wrapper"> <div> <p>Laravel</p> </div> <div class="nav"> <ul> @if(isset($name)) <li><a href="{{ route('logout')}}">Logout</a></li> <li><a href="#">{{$name}}</a></li> @else <li><a href="{{route('login')}}">Login</a></li> <li><a href="{{route('regist')}}">Regist</a></li> @endif </ul> </div> </div> </header>
テンプレート
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <script src="https://kit.fontawesome.com/35b19442e0.js" crossorigin="anonymous"></script> <title>@yield('title')</title> @yield('style') </head> <body> @component('components.header') @endcomponent @yield('content') @component('components.footer') @endcomponent </body> </html>
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/06 10:58
2019/12/06 11:05
2019/12/06 11:07
2019/12/06 11:13
2019/12/06 11:17
2019/12/06 11:23 編集
2019/12/06 11:39 編集
2019/12/06 11:35
2019/12/06 11:59
2019/12/06 12:16
2019/12/06 12:24 編集
2019/12/06 12:29
2019/12/07 05:48
2019/12/07 07:37
2019/12/09 03:15
2019/12/09 05:59