質問: CAKEPHPに手を出して間もないものです。本日初めてbakeというものを実行してみて、一応に成功した模様です(controller~model~templateが仕上がる) テーブル名を指定したbakeコマンドだけで、登録・編集・カード型照会画面・ページインデックス付きのリスト画面が仕上がったことは非常に魅力的でした。 ===質問=== 登録画面を試行したところ、下記のようにエラーを招きました。具体的な要因を知りたいのですが、どこかに書かれているものでしょうか? ちなみにDataBaseはMSSQLです。(これが関係しているのかなぁ...) ![画像の説明をここに入力](https://i.stack.imgur.com/DgiGd.png) ===追記=== ![画像の説明をここに入力](https://i.stack.imgur.com/ELxTY.png)
回答: Bakeを使用して作成したのであれば、"The book could not be saved. Please, try again."というメッセージは、保存失敗時のメッセージとなります。 保存失敗の理由は、モデル(`BooksTable`)に定義されたバリデーションが通らなかったか、データベースへの書き込みに失敗したかとなります。データベースへの書き込みに失敗した場合は、基本的には例外が発生しますので上記のような表示にはなりません。 今回の場合は、バリデーションエラーによる保存失敗の可能性が高いです。 バリデーションエラーは、保存対象のエンティティオブジェクト(今回であれば`$book`)に記録されていますので、これを確認します。 DebugKitを導入しているのであれば、「Variables」のパネルでテンプレートに渡されている変数の内容が見れますのでこれを利用します。 DebugKitのツールバーから「Variables」を開いて、`book`→`errors`を確認してみてください。