debug.logのnoticeについて

複数のサイト(4.4.0/ 4.4.1)で、debug.log内に以下のnoticeが、頻繁に出ています。
ご確認いただけますでしょうか、よろしくお願いします。

2020-11-17 05:39:00 Notice: Notice (8): Undefined index: Site in [/home/***/lib/Baser/Plugin/Blog/View/Helper/BlogHelper.php, line 100]

2020-11-17 05:39:00 Notice: Notice (8): Trying to access array offset on value of type null in [/home/***/lib/Baser/Plugin/Blog/View/Helper/BlogHelper.php, line 100]

【環境情報】
・baserCMSのバージョン:4.4.1
・レンタルサーバー名:ロリポップ
・使用テーマ:Omotenashi2
・PHPスキル: E

lib/Baser/Plugin/Blog/View/Helper/BlogHelper.php の100行目に、

'site_id' => $this->request->params['Site']['id']

上記のような記述があると思います。

ノールックの動作確認なしですが、

'site_id' => Hash::get($this->request->params, 'Site.id')

こう書き換えると改善されますか?そもそもこれで改善されること自体が
イレギュラーではありますが、それは改めて検証したいと思います。
今に始まったことではなくて、単純に今まで気にしなかったエラーという
ことと思います。

1 Likes

@yamamoto
ご回答ありがとうございます。
ご指摘のとおりに記述を変更したところ、noticeは、出なくなりました。ありがとうございます。

「改善されること自体イレギュラー」とのことですが、後学のためにもう少しご説明いただけると嬉しいです。よろしくお願いいたします。

'site_id' => Hash::get($this->request->params, 'Site.id')

こう書くことで「noticeを出さない」という目的はかなえられますが、これは結局「空の値」をsite_idに渡しているので、それはそれでおかしいんじゃないかなー、、と。
なので、ちゃんと修正するなら、値が空の場合はどうする?という判定を先に
行なう必要があると思います・・・が、そもそもsite_idを取得できてないことの
ほうがおかしい気がします。とすると・・調査範囲が少し広くなっちゃいます。

1 Likes

@yamamoto
わかりやすくご説明いただきありがとうございます。

ひとつ疑問なのですが、site_idを取得できなくても特に問題がない(気にしなくてもいいエラー)のであれば、そもそも、なんの目的で 'site_id' => $this->request->params['Site']['id'] で、site_idを取得しているのでしょうか?

そうなんですよね、、そこを調べなくっちゃ。って話なんですよね、、
この件は氷山の一角なので、とりあえずは気にしなくていいかなとは思っています。

1 Likes

@yamamoto
ご回答ありがとうございます。
事情、了解いたしました。