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

回答受付中の質問

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

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

QNo.4523891

困ってます

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

回答(3件中 1~3件目)

ANo.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

ANo.2

となると、$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

ANo.1

コントローラに、

var $uses = null;

する。これでモデルを使わなくなる。
(したがって、モデル自体、作らなくていい)

投稿日時 - 2008-12-02 16:57:40

補足

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

投稿日時 - 2008-12-02 18:44:50

あわせてチェックしたい
  • cakePHPのrouteについて ...
  • cakePHP サブミット方法について ...
  • CakePHP リッチテキストエディタについて ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

カテゴリ

一覧 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら