あるoya.blade.phpで@include
を使用してkodomo.blade.phpというviewを読み込んでいるときに,KodomoControllerのindexメソッド(web.phpで設定したルートを通るものだと(GET)思っていた)が走ると思っていたのですが,動いていない様です。
やりたいことはKodomo.blade.phpへ値を渡したいだけなので呼び出し元のOya.balde.phpから値を渡せばいいだけです。
しかし、
@includeした時に(kodomo.blade.php担当の)KodomoController.phpで値を作成して(特にindexメソッド)渡せると、1つのコントローラ(この場合OyaController.php)が肥大化しなくて良いなと思っています。
@includeを使用すると直接kodomo.blade.phpを読み込んでいる様に見られるのですが,こういう場合KodomoController.phpのindexメソッドを走らせるための書き方はあるのでしょうか?
php
1呼び出し元のoya.blade.php 2 3 <div class="modal-body"> 4 @include('kodomo') 5 </div>
php
1web.php 2 3Route::get('/kodomo','KodomoController@index')->name('kodomo.index');
php
1KodomoController.php 2 3 public function index(){ 4 $carbon = Carbon::now(); 5 $this_year = $carbon->year; 6 $this_month = $carbon->month; 7 $this_today = $carbon->day; 8 $this_hour = $carbon->hour; 9 10 return view('kodomo',compact('this_year','this_month','this_today','this_hour')); 11 }
php
1kodomo.blade.php一部 2 3 <select name='year'> 4 @foreach (range(2020,2025) as $year) 5 @if($year === $this_year) 6 <option value="{{ $year }}" selected> {{ $year }}年 </option> 7 @else 8 <option value="{{ $year }}"> {{ $year }}年 </option> 9 @endif 10 @endforeach 11 </select>
もちろん直接/kodomo
を叩けばKodomoController.phpのindexメソッドが動きます。
@include
で動かそうとすると、$this_year
がないぞ!とお叱りお受けます。
分かりづらい文章になってしまい申し訳ありませんが、ご存知の方がいらっしゃいましたらご教授いただけると嬉しいです。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー