CakePHP3 submitでcheckboxのエラーが発生したときの対処方法

cakephp3 checkbox error detail

Array to string conversion [CORE/src/View/Widget/CheckboxWidget.php, line 80]

このエラーメッセージが出たときの対処方法について、ウェブで情報が少なかったので書いておきますね。
まず、エラーの原因となったコードがこちら

上記のコードでチェックボックスを書き出すことは問題なく出来るのですが、Submitして次の画面に遷移すると以下のようなエラーが発生してしまいました。

cakephp3 checkbox error
Notice (8): Array to string conversion [CORE/src/View/Widget/CheckboxWidget.php, line 80]

Notice のリンクをクリックしてエラーの詳細を見てみると、以下のようなメッセージが。

cakephp3 checkbox error detail
Notice (8): Array to string conversion [CORE/src/View/Widget/CheckboxWidget.php, line 80]
Code Context
Cake\View\Widget\CheckboxWidget::_isChecked() – CORE/src/View/Widget/CheckboxWidget.php, line 80
Cake\View\Widget\CheckboxWidget::render() – CORE/src/View/Widget/CheckboxWidget.php, line 51
Cake\View\Helper\FormHelper::widget() – CORE/src/View/Helper/FormHelper.php, line 2556
Cake\View\Helper\FormHelper::checkbox() – CORE/src/View/Helper/FormHelper.php, line 1409
Cake\View\Helper\FormHelper::_getInput() – CORE/src/View/Helper/FormHelper.php, line 1115
Cake\View\Helper\FormHelper::input() – CORE/src/View/Helper/FormHelper.php, line 1023
include – APP/Template/Layout/**************************
Cake\View\View::_evaluate() – CORE/src/View/View.php, line 992
Cake\View\View::_render() – CORE/src/View/View.php, line 952
Cake\View\View::renderLayout() – CORE/src/View/View.php, line 633
Cake\View\View::render() – CORE/src/View/View.php, line 592
Cake\Controller\Controller::render() – CORE/src/Controller/Controller.php, line 611
Cake\Routing\Dispatcher::_invoke() – CORE/src/Routing/Dispatcher.php, line 120
Cake\Routing\Dispatcher::dispatch() – CORE/src/Routing/Dispatcher.php, line 87
[main] – ROOT/webroot/index.php, line 37

このようなエラーが発生したとき、僕の今回のケースでは以下4行目のコードを追加することで対処が可能でした。
checkedオプションを追加すること。

この1行の設定が無かったことで、CakePHP3に怒られていたんですね。
ウェブに情報が載ってないってことは、昔からCakePHP使っている人にとっては発生することなんてありえない、すんごい初歩的なミスなのでしょうか。
ぼくの技術力不足がここで露呈するのはちょっと恥ずかしいですが、きっと誰かの役に立てるだろうと思って記事に残しておきます。
フレームワークの作法を覚えるのって大変。

広告収入を得るためのスポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

広告収入を得るためのスポンサーリンク
%d人のブロガーが「いいね」をつけました。