CakePHPのError:An Internal Error Has Occurredはデータベースのテーブル周りを確認しましょう
目次
先日、Error:An Internal Error Has Occurredってどういうこと? WebデザイナーのためのCakePHPビューコーディング入門より(新しいタブで開く)という記事を書いて、泣きを入れていました。
しかし、何人かの人に聞きまわったり、時間を空けてググったりして、ようやく解決したのでそのご報告です。このエラーを解決するためには、手順1~2に従って修正する必要があります。
問題解決への手順その1
そもそも”Error:An Internal Error Has Occurred”というエラーの原因の1つとして、モデルで使うテーブルが指定されていないことにあります。
従って、お問い合わせ管理の画面で表示するテーブル内容を、使用しているデータベースの下に入れてやります。この本を写経している人であれば、以下のテーブルを入れてあげましょう。
- contactsテーブル
- mtr_sexesテーブル
- mtr_agesテーブル
- mtr_favolitesテーブル
- contacts_mtr_favolitesテーブル
問題解決への手順その2
次にContactsController.phpのソースコードを修正します。上記の本のコードでは、
/** * 問い合わせリスト */ public function index() { $contactData = $this->paginate('Paginate'); $this->set(compact('contactData')); }
となっていますが、このコードを次のように変えてください。
public function index() { $contactData = $this->paginate('Contact'); $this->set(compact('contactData')); }
paginate()の引数を、‘Paginate’から’Contact’に変えています。これでようやくお問い合わせ管理画面を呼び出すことができました!
まとめ
いや~、たかがページを1つ飛ばすだけで、3日もかかってしまいましたよ~(汗この記事を読んでくださった方は、くれぐれもドツボにはまらないよう気を付けてください。
最後になりましたが、アドバイスをくださった関係者のみなさま、どうもありがとうございました!
〔元の記事〕
〔参考サイト〕