質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
foreach

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

0回答

801閲覧

Laravel データベーツについてデータ表示問題

kaung0020

総合スコア4

foreach

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2021/11/12 01:09

編集2021/11/15 00:11

前提・実現したいこと

初めての質問なので何か誤りがございいましたら申し訳ございません。
テーブルから取得したデータ(祝祭日の日付)のフォント色を赤色に変更する処理
ログインした社員の出勤日付データに祝祭日があったら日付と曜日を赤色にする
利用テーブル=>2テーブル
(PHP(Laravel)で勉強して勤怠管理みたいなウェブサイトを作っています。

該当のソースコード

WorkTimeReferenceRepository.php

1<?php 2 3namespace App\Repositories\Work_Time; 4 5use Illuminate\Http\Request; 6use App\Models\MT08Holiday; 7use App\Models\TR01Work; 8use App\Models\MT99Msg; 9use Illuminate\Support\Facades\DB; 10 11class WorkTimeReferenceRepository 12{ 13 /** 14 * 勤務状況照会(個人用) 処理 15 *ヘッダーの検索条件表示 16 * @return WorkTimeReferenceController 17 */ 18 public function empInput(Request $request) 19 { 20 $inputEmpData = $request->all(); 21 $nationalClsd = MT08Holiday::get('HLD_DATE'); 22 $empWorkTimeResults = TR01Work::select( 23 'TR01_WORK.*', 24 'MT05_WORKPTN.WORKPTN_NAME', 25 'MT05_WORKPTN.WORK_CLS_CD', 26 'MT09_REASON.REASON_NAME', 27 'MT09_REASON.REASON_PTN_CD', 28 // 'MT08_HOLIDAY.HLD_DATE' 29 ) 30 ->join('MT05_WORKPTN', 'TR01_WORK.WORKPTN_CD', 'MT05_WORKPTN.WORKPTN_CD') 31 ->join('MT09_REASON', 'TR01_WORK.REASON_CD', 'MT09_REASON.REASON_CD') 32 ->join('MT10_EMP', 'TR01_WORK.EMP_CD', 'MT10_EMP.EMP_CD') 33 ->where('CALD_YEAR', $inputEmpData['ddlTargetYear']) 34 ->where('CALD_MONTH', $inputEmpData['ddlTargetMonth']) 35 ->where('TR01_WORK.EMP_CD', $inputEmpData['txtEmpCd']) 36 ->where('MT10_EMP.REG_CLS_CD', '=', '00') 37 ->selectRaw("Case When TR01_WORK.OFC_TIME_HH Is Null THEN '' 38 Else Cast(TR01_WORK.OFC_TIME_HH As VarChar) + ':' + RIGHT('00' + Cast(TR01_WORK.OFC_TIME_MI As VarChar), 2) 39 End As OFC_TIME") 40 ->selectRaw("Case When TR01_WORK.LEV_TIME_HH Is Null Then '' 41 Else Cast(TR01_WORK.LEV_TIME_HH As VarChar) + ':' + RIGHT('00' + Cast(TR01_WORK.LEV_TIME_MI As VarChar), 2) 42 End As LEV_TIME") 43 ->selectRaw("Case When TR01_WORK.OUT1_TIME_HH Is Null Then '' 44 Else Cast(TR01_WORK.OUT1_TIME_HH As VarChar) + ':' + RIGHT('00' + Cast(TR01_WORK.OUT1_TIME_MI As VarChar), 2) 45 End As OUT1_TIME") 46 ->selectRaw("Case When TR01_WORK.IN1_TIME_HH Is Null Then '' 47 Else Cast(TR01_WORK.IN1_TIME_HH As VarChar) + ':' + RIGHT('00' + Cast(TR01_WORK.IN1_TIME_MI As VarChar), 2) 48 End As IN1_TIME") 49 ->selectRaw("Case When TR01_WORK.OUT2_TIME_HH Is Null Then '' 50 Else Cast(TR01_WORK.OUT2_TIME_HH As VarChar) + ':' + RIGHT('00' + Cast(TR01_WORK.OUT2_TIME_MI As VarChar), 2) 51 End As OUT2_TIME") 52 ->selectRaw("Case When TR01_WORK.IN2_TIME_HH Is Null Then '' 53 Else Cast(TR01_WORK.IN2_TIME_HH As VarChar) + ':' + RIGHT('00' + Cast(TR01_WORK.IN2_TIME_MI As VarChar), 2) 54 End As IN2_TIME") 55 ->selectRaw("Case When TR01_WORK.WORK_TIME_HH + TR01_WORK.WORK_TIME_MI = 0 Then '' 56 Else Cast(TR01_WORK.WORK_TIME_HH As VarChar) + ':' + RIGHT('00' + Cast(TR01_WORK.WORK_TIME_MI As VarChar), 2) 57 End AS WORK_TIME") 58 ->selectRaw("Case When TR01_WORK.TARD_TIME_HH + TR01_WORK.TARD_TIME_MI = 0 Then '' 59 Else Cast(TR01_WORK.TARD_TIME_HH As VarChar) + ':' + RIGHT('00' + Cast(TR01_WORK.TARD_TIME_MI As VarChar), 2) 60 End AS TARD_TIME") 61 ->selectRaw("Case When TR01_WORK.LEAVE_TIME_HH + TR01_WORK.LEAVE_TIME_MI = 0 Then '' 62 Else Cast(TR01_WORK.LEAVE_TIME_HH As VarChar) + ':' + RIGHT('00' + Cast(TR01_WORK.LEAVE_TIME_MI As VarChar), 2) 63 End AS LEAVE_TIME") 64 ->selectRaw("Case When TR01_WORK.OUT_TIME_HH + TR01_WORK.OUT_TIME_MI = 0 Then '' 65 Else Cast(TR01_WORK.OUT_TIME_HH As VarChar) + ':' + RIGHT('00' + Cast(TR01_WORK.OUT_TIME_MI As VarChar), 2) 66 End AS OUT_TIME") 67 ->get(); 68 69 // dd($empWorkTimeResults); 70 return $empWorkTimeResults; 71 } 72 73 public function calHolidayDate() 74 { 75 $weekday = array("日", "月", "火", "水", "木", "金", "土"); 76 return $weekday; 77 } 78 79 public function officeClsd(Request $request) 80 { 81 $dateColor = ''; 82 $nationalClsds = MT08Holiday::get('HLD_DATE'); 83 // dd($nationalClsd); 84 85 86 return $nationalClsds; 87 } 88 89 } 90} 91 92``WorkTimeReferenceController.php 93<?php 94 95namespace App\Http\Controllers\Work_Time; 96 97use App\Http\Controllers\Controller; 98use Illuminate\Support\Facades\DB; 99use Illuminate\Http\Request; 100use App\Http\Requests\WorkTimeReferenceRequest; 101use App\Repositories\Work_Time\WorkTimeReferenceRepository; 102use App\Models\TR01Work; 103use App\Models\MT99Msg; 104 105class WorkTimeReferenceController extends Controller 106{ 107 108 /** 109 * $wtRef_Repositoryリポジトリの実装 110 * 111 * @var WorkTimeReferenceRepository 112 */ 113 protected $wtRef_Repository; 114 115 /** 116 * 新しいコントローラインスタンスの生成 117 * 118 * @param WorkTimeReferenceRepository $wtRef_Repository 119 * @return void 120 */ 121 public function __construct(WorkTimeReferenceRepository $wtRef_Repository) 122 { 123 $this->wtRef_Repository = $wtRef_Repository; 124 } 125 126 /** 127 * 勤務状況照会(個人用) 処理 128 * 129 * @return view 130 */ 131 public function search(WorkTimeReferenceRequest $request) 132 { 133 $empWorkTimeResults = $this->wtRef_Repository->empInput($request); 134 // dd($empWorkTimeResults); 135 136 $errMsg_4029 = $this->wtRef_Repository->messages(); 137 //dd($msg_4029); 138 139 $weekday = $this->wtRef_Repository->calHolidayDate(); 140 // $nationalClsd = $this->wtRef_Repository->nationalClsday(); 141 $officeClsds = $this->wtRef_Repository->officeClsd($request); 142 // $dateColor = $this->wtRef_Repository->officeClsd($request); 143 // dd($officeClsd); 144 return view('work_time.WorkTimeReference', compact('empWorkTimeResults', 'weekday', 'errMsg_4029','officeClsds')); 145 } 146} 147 148``WorkTimeReference.blade.php 149@foreach ($officeClsds as $officeClsd ) 150 151 @foreach ($empWorkTimeResults as $empWorkTimeResult) 152 <tr> 153 @if ($officeClsd->HLD_DATE == $weekday[date('md',strtotime($empWorkTimeResult->CALD_DATE))] || 154 $weekday[date('w',strtotime($empWorkTimeResult->CALD_DATE))] == '日' || 155 $weekday[date('w',strtotime($empWorkTimeResult->CALD_DATE))] == '土') 156 <td style="width: 70px;"> 157 <span id="lblCaldDate" 158 style="width: 70px; display: inline-block; color: red"> 159 {{ date('Y/m/d', strtotime($empWorkTimeResult->CALD_DATE)) }} 160 </span> 161 </td> 162 <td style="width: 30px;"> 163 <span id="lblCaldDate" 164 style="width: 30px; display: inline-block; color: red"> 165 {{ $weekday[date('w', strtotime($empWorkTimeResult->CALD_DATE))] }} 166 </span> 167 </td> 168 @else 169 <td style="width: 70px;"> 170 <span id="lblCaldDate" style="width: 70px; display: inline-block;"> 171 {{ date('Y/m/d', strtotime($empWorkTimeResult->CALD_DATE)) }} 172 </span> 173 </td> 174 <td style="width: 30px;"> 175 <span id="lblCaldDate" style="width: 30px; display: inline-block;"> 176 {{ $weekday[date('w', strtotime($empWorkTimeResult->CALD_DATE))] }} 177 </span> 178 </td> 179 @endif

試したこと

①ログインした社員の出勤日付データをテーブルから取得しコントローラーから画面に渡し=>画面側foreach文で回して表示しました。
②その表示してる日付の中祝祭日があれば日付と曜日のフォント色赤色にする=>foreach文で回して試しました。
何か他の方法がございますでしょうか?
◆結果
・社員出勤日データ表示Foreachの中に祝祭日データをForeachで回して、If文で「出勤日データの中祝祭日があったらフォント色赤に変更する」条件でチャックしましたがうまくいかなかった。
・二重ループを使って出勤日データ「2017-09-26 00:00:00.000」フォーマットを「月/日」フォーマットに変更し、祝祭日データ「0101」を「月/日」フォーマットに変更しIf文でチャックをしました。チャック処理が成功しましたが、ループが「出勤日データ」の分と「祝祭日データ」の分も回してしまいました。

補足情報(FW/ツールのバージョンなど)

テーブル二つの結合でも試したがループがうまく反映されませんでした。

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問