墓参り

墓掃除と墓参り
1-2. edit_overview.blade.php 削除
変更詳細
edit_overview.blade.php削除
routes/web.phpprojects.overview.edit / projects.overview.update ルートを削除
ProjectControllereditOverview() / updateOverview() メソッドを削除

残留リンク確認: resources/views/projects/ 内に overview ルートへの参照なし(削除前にgrep確認済み)

甲斐犬のキクも一緒に

2.show.blade.php — 工事編集ボタンの移動

変更前: <x-slot name=”nav_extra”> でヘッダータブとして表示
変更後*: 工事名・ステータスバーの右端にボタン配置

[ 工事名 (施工中) ] ··················· [ 部署: ○○ ] [ 担当: ○○ ] [ ✏️ 工事編集 ]

プロジェクトの管理画面を刷新

プロジェクト管理プロセスのセキュリティ及びファイルの健全性を検証

1.コードファイルの統合

1-1. create.blade.php + edit.blade.php → edit.blade.php(統合・create 削除)

統合方法:

  • $project->exists(Eloquent 未保存インスタンスかどうか)で動作を切り替え
  • 新規モード(exists = false): フォーム action → projects.store、HTTP method → POST、入力値なし
  • 編集モード(exists = true): フォーム action → projects.update、HTTP method → PATCH、old() + 既存値
  • ヘッダー文言・キャンセル遷移先・会社名ソース・nav_extra タブをモードで分岐
  • ProjectController@create() を view(‘projects.edit’, [‘project’ => new Project()]) に変更
  • 影響範囲: index.blade.php の route(‘projects.create’) はそのまま動作(resource ルートは維持)
変更前変更後
create.blade.php(新規登録専用)削除
edit.blade.php(編集専用)create+edit 統合版に書き換え

3.バグ修正 — ステータス表示の不整合

問題: index.blade.php は start_date/end_date から PHP で計算、show.blade.php は $project->status(DBカラム値)を直接参照 → 表示が食い違う修正: Project モデルにアクセサを追加し、全ページで統一

php
// app/Models/Project.php に追加
public function getStatusLabelAttribute(): string
{
$today = \Carbon\Carbon::today()->format(‘Y-m-d’);
if (!$this->start_date || !$this->end_date || $today < $this->start_date) {
return ‘準備中’;
}
if ($today > $this->end_date) {
return ‘工事完了’;
}
return ‘施工中’;
}

適用箇所*

ファイル変更前変更
index.blade.php@php ブロックで 15 行の計算$project->status_label 1行
show.blade.php(ステータスバー)$project->status(DBカラム)$project->status_label
show.blade.php(情報テーブル)$project->status(DBカラム)$project->status_label
print.blade.php@php ブロックで 8 行の計算$project->status_label 1行

4.セキュリティ・脆弱性の対処(前回作業分の確認)

項目状態
XSS: session(‘error’/’success’) を alert() で表示✅ 前回修正済み(アラート削除、toast コンポーネント利用)
インラインJSハンドラー(onclick= / onsubmit=)✅ 前回修正済み(addEventListener / 使用)
写真 taken_at nullチェック不足✅ 前回修正済み(Carbon::parse() + null ガード)

5.修正後のファイル一覧

ファイル状態
projects/index.blade.php修正(ステータス計算を status_label アクセサに置換)
projects/edit.blade.php書き換え(create + edit 統合)
projects/show.blade.php修正(工事編集ボタン移動・status_label 適用)
projects/print.blade.php修正(status_label アクセサ適用)
projects/create.blade.php削除
projects/edit_overview.blade.php削除
app/Models/Project.php修正(getStatusLabelAttribute() 追加)
app/Http/Controllers/ProjectController.php修正(create 改修、editOverview/updateOverview 削除)
routes/web.php修正(overview ルート 2 件削除)

ブックマークする パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です