###環境
virtualbox上のcentos8,mysql5.7、php7.4, cakephp3.8
###やりたいこと
作成した質問サイトに、質問と回答を追加したい。
###期待していた挙動
/qa/questions/addと、/qa/questions/view/n(←id番号)で、
それぞれ、内容を入力してから「投稿する」ボタンを押すと、データベースに新たに当該投稿が追加され、ページに表示される。
###実際の挙動
いずれも「投稿に失敗しました。」と表示がされ、phpmyadmninで確認してもテーブルにデータが追加された様子はない。
###試したこと
・http://hideichi.com/archives/5236このサイトを参考に、QuestionsController.phpのl48で、save($question, false)としたが表示は変わりませんでした。
・本の通りに進めているつもりなのですが(はじめてのphpプロフェッショナル開発という本です)、(本と違い)bin/cake bakeでmodelを作成したところがあったので、回避策としてそこを修正して新たに作り直してみたいと思っています。
・cakephpのデバッグ機能?で右下の赤いボタンから、variablesを確認したのですが、入力したテキストが保存されているような変数は表示されていませんでした。
・初心者なので、本の書いてある通りにはできても、挙動が思うようでないとき、デバッグの方法が理解できていないのだと思います。
もし可能なら、どうやってエラーを発見したのかについても、教えていただけると幸いです。
ソースコードについては、以下のサイトにございます。
https://github.com/gari2/cakephpbook
テーブルの作成コードについても載せておきます。
sql
1CREATE DATABASE qa_app; 2use qa_app; 3 4CREATE TABLE `answers` ( 5 `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 6 `question_id` int(10) unsigned NOT NULL, 7 `user_id` int(10) unsigned NOT NULL, 8 `body` varchar(255) NOT NULL, 9 `created` datetime NOT NULL, 10 `modified` datetime NOT NULL, 11 PRIMARY KEY (`id`) 12) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 13 14CREATE TABLE `questions` ( 15 `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 16 `user_id` int(10) unsigned NOT NULL, 17 `body` varchar(255) NOT NULL, 18 `created` datetime NOT NULL, 19 `modified` datetime NOT NULL, 20 PRIMARY KEY (`id`) 21) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 22 23CREATE TABLE `users` ( 24 `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 25 `username` varchar(16) NOT NULL, 26 `password` varchar(255) NOT NULL, 27 `nickname` varchar(32) NOT NULL, 28 `created` datetime NOT NULL, 29 `modified` datetime NOT NULL, 30 PRIMARY KEY (`id`), 31 UNIQUE KEY `username` (`username`) 32) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 33 34INSERT INTO questions (user_id, body, created, modified) 35VALUES 36 (1, '普段PHPのフレームワークって何使ってますか?', now(), now()), 37 (1, 'PHPにあったらいいなと思う機能ってありますか?', now(), now()), 38 (1, 'みなさんはいつからPHPを書いてますか?', now(), now()); 39 40INSERT INTO answers (question_id, user_id, body, created, modified) 41VALUES 42 (3, 1, '私はLaravelです!あとたまにYiiを使っています!', now(), now()), 43 (3, 1, '僕はCakePHP!', now(), now());
拙い質問ですが、どうぞよろしくお願いいたします。
あなたの回答
tips
プレビュー