• 締切済み

CakePHP データベースを使わずに

PHP 5.2.6 CakePHP 1.2 データベースを使わずにフォームを作成する場合 <?php echo $form->create('Contact', array('action'=>'entry', 'method'=>'post')))?> と記述するとデータベースに接続しようと、してしましす。 もちろんモデル側では、 var $useTable = false; としてるのですが、どのようにしたらよいのでしょうか? よろしくお願いいたします。

みんなの回答

noname#94983
noname#94983
回答No.3

> <?php echo $form->create('コントラーラ名', array('action'=>'entry', 'method'=>'post')))?> > <?php echo $form->end()?> ああ、なるほど。そういうことか。つまりデータベースは使わないが、モデルは使いたい、その他のヘルパーも使いたい、ということなのか。では、モデルクラス内にメンバ変数として、 var $useTable = false; var $_schema = array('id' => array('type' => 'integer')); こんな感じで書いてみる。$_schemaは、ダミーのテーブルスキーマ情報。こいつを取りに行こうとしてデータベースアクセスしてしまうので、あらかじめダミーを与えておけばデータベースを見に行かないはず。あるいは、モデル内で独自にデータを構成してるなら、それにあわせてスキーマ情報を用意してもいいと思う。

nokomo
質問者

お礼

ありがとうございます。 エラーの表示がなくなりました。 知りませんでしたスキーマ情報なるものがあるなんて 勉強します。

noname#94983
noname#94983
回答No.2

となると、$useTable = false;だが……。 さっき、ちょっと試してみたんだが、CakePHP1.2なら、モデルに$useTable = false;を用意しただけで、エラーも出ずにそのままコントローラのindexアクションにアクセスできたぞ? index.ctpも問題なく表示されている。database.phpも作成してない。$useTable = false;だけで特に問題ないようなんだが。 具体的にどういうエラーが出ているのか、またクラスやファイル類は命名規則にしたがってつけられているか、そのへんを確認してみたら。案外、他に原因があるのかもしれない。

nokomo
質問者

補足

度々のご返答ありがとうございます。 index.ctpに <?php echo $form->create('コントラーラ名', array('action'=>'entry', 'method'=>'post')))?> <?php echo $form->end()?> と追加してみて下さい。 Warning (2): mysql_connect() [function.mysql-connect]: ~ Warning (2): mysql_select_db(): supplied argument ~ Warning (2): mysql_get_server_info(): supplied argument ~ といったエラーが表示されます。

noname#94983
noname#94983
回答No.1

コントローラに、 var $uses = null; する。これでモデルを使わなくなる。 (したがって、モデル自体、作らなくていい)

nokomo
質問者

補足

ご返答ありがとうございます。 そうなると、validatesでのチェックができなくなってしまうので モデルを使わないというのは・・・

関連するQ&A