Skip to content

Conversation

@gakigaki
Copy link
Contributor

@gakigaki gakigaki commented Sep 10, 2025

概要

例外経路(例: /index.php%3F などの変則URL)で ConnectInit ミドルウェアが未実行のままエラービュー描画に進む場合があり、その際にレイアウトから呼ばれる UploadController::getSiteCssTimestamp()Configs::getSharedConfigs()null を返し、firstWhere() 実行時に「Call to a member function firstWhere() on null」で 500 となっていました。

対策として、Configs::getSharedConfigs()null を返す状況では collect()(空コレクション)でフォールバックするようにし、例外レンダリング時の null 参照を防止しました。正常系の挙動に影響はありません。

変更内容:

  • app/Models/Core/Configs.php
    • getSharedConfigs() に null ガードを追加し、$request->attributes['configs'] が未設定の場合は collect() を返却

レビュー完了希望日

軽微な修正のため急ぎません。ご都合の良いタイミングでご確認ください。

関連Pull requests/Issues

なし

参考

  • エラー発生箇所(ログより):
    • app/Http/Controllers/Core/UploadController.php: getSiteCssTimestamp() → getConfigsMaxUpdatedAt()
    • resources/views/layouts/app.blade.php: サイトCSSリンクの ?version= 生成で UploadController::getSiteCssTimestamp() 呼び出し
  • ミドルウェア設定:
    • app/Http/Middleware/ConnectInit.php(configs を request attributes に設定)

DB変更の有無

無し

チェックリスト

- ConnectInit未通過の経路でrequest attributesにconfigsが無い場合、collect()でフォールバック
- /index.php%3F のような変則URLでエラービュー描画時にfirstWhere() on nullで500になる問題を解消

Refs: #none
@gakigaki gakigaki changed the title fix: 例外レンダリング時のnull参照を防止 (Configs::getSharedConfigs の null ガード追加) [コア] 例外レンダリング時のnull参照を防止しました Sep 10, 2025
@gakigaki gakigaki added the developer update 開発者向けの更新 label Sep 10, 2025
@gakigaki gakigaki merged commit 6080a0b into master Sep 10, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

developer update 開発者向けの更新

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants