CakePHPでつまずいたこと2つ

CakePHPで作っていくと、思い通りに動いてくれないことがあります。わかると何てことはないかと思いますが、私が2つほど悩んだとこと。

モデル、コントローラ、ビューを作成して、いろいろ変更をかけていくと突然動かなくなりました。CakePHPはエラーメッセージが細かく表示してくれますのでありがたいのですが、「テーブルが見つからないよ。テーブル名はたぶんモデルの複数形だよ。」(非常な意訳)とかでます。テーブルの名前を見たり、ソースを追ったりしてもわからない。しかし、試しにコマンドプロントでDBに接続してみると、接続できない。何てことはない、DBのへのアクセス権限がないのが原因でした。テーブル構造を変更したので、createt tableでSQLを発行したときに、オーナーがDB管理者権限になっていました。

bake.phpでモデル、コントローラ、ビューを作成して、一覧ページ(indexアクション)から追加ページ(addアクション)でレコードを追加しました。そのレコードを編集しようとしても編集できません(editアクション)。編集ページに行こうとしようとすると、一覧ページ戻ってしまいます。これも簡単な原因でした。対象となるテーブルのIDがオートインクリメントに設定されてませんでした。追加したときにIDは0になっていました。これで、editアクションのIDチェックでエラーになっていました。

以上、私がやってしまったCakePHPでのとても単純なミス(後者は、テーブル設定のミス)でした。

投稿者:

avatar

ando

50過ぎてもプログラマーの気持ちを忘れない。