
1-2. edit_overview.blade.php 削除
| 変更 | 詳細 |
|---|---|
| edit_overview.blade.php | 削除 |
| routes/web.php | projects.overview.edit / projects.overview.update ルートを削除 |
| ProjectController | editOverview() / 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 件削除) |

