テンプレートエンジン(blade)にて、配列変数を用いて、if文内で比較を行いたいのですが、変数のみのチェックができず、HTML要素も@foreach内にて、繰り返し出力されてしまいます。
該当のコードは、以下になります。※文字数制限の関係上途中のコードは省略しています。
<div class="reserve_time_list"> @foreach($occupied as $reserved_time) <div class="reserve_time_block flex"> <div class="reserve_status_left reserve_status flex"> <p>10:00</p> @if('10:00' == $reserved_time) <p class="no_reservation">✖</p> @else <form action="/reserve/infomation" method="post"> {{ csrf_field() }} <input type="hidden" name="time" value="10時00分"> <input type="hidden" name="date" type="submit" value="{{ $date_display_formt }}"> <input type="hidden" name="dayOfWeek" value="{{ $day }}"> <input class="calendar_button reserved_time_button" type="submit" value="〇"> </form> @endif </div> <div class="reserve_right reserve_status flex"> <p>10:30</p> @if('10:30' == $reserved_time) <p class="no_reservation">✖</p> @else <form action="/reserve/infomation" method="post"> {{ csrf_field() }} <input type="hidden" name="time" value="10時30分"> <input type="hidden" name="date" type="submit" value="{{ $date_display_formt }}"> <input type="hidden" name="dayOfWeek" value="{{ $day }}"> <input class="calendar_button reserved_time_button" type="submit" value="〇"> </form> @endif </div> </div> <div class="reserve_time_block flex"> <div class="reserve_status_left reserve_status flex"> <p>11:00</p> @if('11:00' == $reserved_time) <p class="no_reservation">✖</p> @else <form action="/reserve/infomation" method="post"> {{ csrf_field() }} <input type="hidden" name="time" value="11時00分"> <input type="hidden" name="date" type="submit" value="{{ $date_display_formt }}"> <input type="hidden" name="dayOfWeek" value="{{ $day }}"> <input class="calendar_button reserved_time_time_button" type="submit" value="〇"> </form> @endif </div> <div class="reserve_right reserve_status flex"> <p>11:30</p> @if('11:30' == $reserved_time) <p class="no_reservation">✖</p> @else <form action="/reserve/infomation" method="post"> {{ csrf_field() }} <input type="hidden" name="time" value="11時30分"> <input type="hidden" name="date" type="submit" value="{{ $date_display_formt }}"> <input type="hidden" name="dayOfWeek" value="{{ $day }}"> <input class="calendar_button reserved_time_button" type="submit" value="〇"> </form> @endif </div> </div> <div class="reserve_time_block flex"> <div class="reserve_status_left reserve_status flex"> <p>12:00</p> @if('12:00' == $reserved_time) <p class="no_reservation">✖</p> @else <form action="/reserve/infomation" method="post"> {{ csrf_field() }} <input type="hidden" name="time" value="12時00分"> <input type="hidden" name="date" type="submit" value="{{ $date_display_formt }}"> <input type="hidden" name="dayOfWeek" value="{{ $day }}"> <input class="calendar_button reserved_time_button" type="submit" value="〇"> </form> @endif </div> <div class="reserve_right reserve_status flex"> <p>12:30</p> @if('12:30' == $reserved_time) <p class="no_reservation">✖</p> @else <form action="/reserve/infomation" method="post"> {{ csrf_field() }} <input type="hidden" name="time" value="12時30分"> <input type="hidden" name="date" type="submit" value="{{ $date_display_formt }}"> <input type="hidden" name="dayOfWeek" value="{{ $day }}"> <input class="calendar_button reserved_time_button" type="submit" value="〇"> </form> @endif </div> </div> <div class="reserve_time_block flex"> <div class="reserve_status_left reserve_status flex"> <p>13:00</p> @if('13:00' == $reserved_time) <p class="no_reservation">✖</p> @else <form action="/reserve/infomation" method="post"> {{ csrf_field() }} <input type="hidden" name="time" value="13時00分"> <input type="hidden" name="date" type="submit" value="{{ $date_display_formt }}"> <input type="hidden" name="dayOfWeek" value="{{ $day }}"> <input class="calendar_button reserved_time_button" type="submit" value="〇"> </form> @endif </div> <div class="reserve_right reserve_status flex"> <p>13:30</p> @if('13:30' == $reserved_time) <p class="no_reservation">✖</p> @else <form action="/reserve/infomation" method="post"> {{ csrf_field() }} <input type="hidden" name="time"value="13時30分"> <input type="hidden" name="date" type="submit" value="{{ $date_display_formt }}"> <input type="hidden" name="dayOfWeek" value="{{ $day }}"> <input class="calendar_button reserved_time_button" type="submit" value="〇"> </form> @endif </div> </div> <div class="reserve_time_block flex"> <div class="reserve_status_left reserve_status flex"> <p>14:00</p> @if('14:00' == $reserved_time) <p class="no_reservation">✖</p> @else <form action="/reserve/infomation" method="post"> {{ csrf_field() }} <input type="hidden" name="time" value="14時00分"> <input type="hidden" name="date" type="submit" value="{{ $date_display_formt }}"> <input type="hidden" name="dayOfWeek" value="{{ $day }}"> <input class="calendar_button reserved_time_button" type="submit" value="〇"> </form> @endif </div> <div class="reserve_right reserve_status flex"> <p>14:30</p> @if('14:30' == $reserved_time) <p class="no_reservation">✖</p> @else <form action="/reserve/infomation" method="post"> {{ csrf_field() }} <input type="hidden" name="time" value="14時30分"> <input type="hidden" name="date" type="submit" value="{{ $date_display_formt }}"> <input type="hidden" name="dayOfWeek" value="{{ $day }}"> <input class="calendar_button reserved_time_button" type="submit" value="〇"> </form> @endif </div> </div> <div class="reserve_time_block flex"> <div class="reserve_status_left reserve_status flex"> <p>15:00</p> @if('15:00' == $reserved_time) <p class="no_reservation">✖</p> @else <form action="/reserve/infomation" method="post"> {{ csrf_field() }} <input type="hidden" name="time" value="15時00分"> <input type="hidden" name="date" type="submit" value="{{ $date_display_formt }}"> <input type="hidden" name="dayOfWeek" value="{{ $day }}"> <input class="calendar_button reserved_time_button" type="submit" value="〇"> </form> @endif </div> <div class="reserve_right reserve_status flex"> <p>15:30</p> @if('15:30' == $reserved_time) <p class="no_reservation">✖</p> @else <form action="/reserve/infomation" method="post"> {{ csrf_field() }} <input type="hidden" name="submit" value="15時30分"> <input type="hidden" name="date" type="submit" value="{{ $date_display_formt }}"> <input type="hidden" name="dayOfWeek" value="{{ $day }}"> <input class="calendar_button reserved_time_button" type="submit" value="〇"> </form> @endif </div> </div> <div class="reserve_time_block flex"> <div class="reserve_status_left reserve_status flex"> <p>17:00</p> @if('17:00' == $reserved_time) <p class="no_reservation">✖</p> @else <form action="/reserve/infomation" method="post"> {{ csrf_field() }} <input type="hidden" name="time" type="submit" value="17時00分"> <input type="hidden" name="date" type="submit" value="{{ $date_display_formt }}"> <input type="hidden" name="dayOfWeek" value="{{ $day }}"> <input class="calendar_button reserved_time_button" type="submit" value="〇"> </form> @endif </div> <div class="reserve_right reserve_status flex"> <p>17:30</p> @if('17:30' == $reserved_time) <p class="no_reservation">✖</p> @else <form action="/reserve/infomation" method="post"> {{ csrf_field() }} <input type="hidden" name="time" value="17時30分"> <input type="hidden" name="date" type="submit" value="{{ $date_display_formt }}"> <input type="hidden" name="dayOfWeek" value="{{ $day }}"> <input class="calendar_button reserved_time_button" type="submit" value="〇"> </form> @endif </div> </div> <div class="reserve_time_block flex"> <div class="reserve_status_left reserve_status flex"> <p>18:00</p> @if('18:00' == $reserved_time) <p class="no_reservation">✖</p> @else <form action="/reserve/infomation" method="post"> {{ csrf_field() }} <input type="hidden" name="time" value="18時00分"> <input type="hidden" name="date" type="submit" value="{{ $date_display_formt }}"> <input type="hidden" name="dayOfWeek" value="{{ $day }}"> <input class="calendar_button reserved_time_button" type="submit" value="〇"> </form> @endif </div> </div> @endforeach
上記コードでは、foreach内で、HTMLブロックも繰り返し出力されてしまいますが、例えば、@if('18:00' == $reserved_time)こちらでしたら、$reserved_timeだけを比較させ、HTML部分には干渉させないような方法はありませんでしょうか...?
配列を使わない代替方法としましては、コントローラーの方で、@if('18:00' == $reserved_time)この部分でしたら、18:00と比較する用の変数を用意するなどして、それぞれの時間に対応する変数を作成することもありかなと思ったのですが、配列で効率的に処理できる方法があるなら、その方が良いと思いまして...
良い方法があれば教えて頂ければ幸いです。
回答1件
あなたの回答
tips
プレビュー