回答受付中の質問
PHP 5.2.6
CakePHP 1.2
データベースを使わずにフォームを作成する場合
<?php echo $form->create('Contact', array('action'=>'entry', 'method'=>'post')))?>
と記述するとデータベースに接続しようと、してしましす。
もちろんモデル側では、
var $useTable = false;
としてるのですが、どのようにしたらよいのでしょうか?
よろしくお願いいたします。
投稿日時 - 2008-12-02 13:46:01
0人が「このQ&Aが役に立った」と投票しています
回答(3件中 1~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は、ダミーのテーブルスキーマ情報。こいつを取りに行こうとしてデータベースアクセスしてしまうので、あらかじめダミーを与えておけばデータベースを見に行かないはず。あるいは、モデル内で独自にデータを構成してるなら、それにあわせてスキーマ情報を用意してもいいと思う。
投稿日時 - 2008-12-03 10:10:56
お礼
ありがとうございます。
エラーの表示がなくなりました。
知りませんでしたスキーマ情報なるものがあるなんて
勉強します。
投稿日時 - 2008-12-03 11:08:20
となると、$useTable = false;だが……。
さっき、ちょっと試してみたんだが、CakePHP1.2なら、モデルに$useTable = false;を用意しただけで、エラーも出ずにそのままコントローラのindexアクションにアクセスできたぞ? index.ctpも問題なく表示されている。database.phpも作成してない。$useTable = false;だけで特に問題ないようなんだが。
具体的にどういうエラーが出ているのか、またクラスやファイル類は命名規則にしたがってつけられているか、そのへんを確認してみたら。案外、他に原因があるのかもしれない。
投稿日時 - 2008-12-02 21:59:16
補足
度々のご返答ありがとうございます。
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 ~
といったエラーが表示されます。
投稿日時 - 2008-12-02 23:22:47