▼ 2008/02/08(金) formヘルパーをテーブルなしモデルで使用するとエラーの回避方法CakePHP1.2b
テーブルを使用しない、useTable=false;の時に、viewにてformヘルパーを使用すると以下のようなエラーがでる。(デバッグモード1以上)
ようは、tableを使っていなくても、テーブルのスキーマ情報を登録しておけ、とのこと。
ただ、登録すべきスキーマ情報をどのようにすべきかの確たる情報がない。
で、以下のように最低限のスキーマ登録をやってみたら、エラーはでなくなった。
なお、googleディスカッションでは、開発責任者の方自らが、質問に答えていました。
Cake1.2bのお話。
(FormHelper::create) Unable to use model field data. If you are using a model without a database table, try implementing schema() [CORE\cake\libs\view\helpers\form.php, line 124]
(Model::getColumnType) Unable to locate model field data. If you are using a model without a database table, try implementing schema() [CORE\cake\libs\model\model.php, line 959]なかなか日本語情報がなく、googleディスカッションで、なんとか手がかりをみつけた。
ようは、tableを使っていなくても、テーブルのスキーマ情報を登録しておけ、とのこと。
ただ、登録すべきスキーマ情報をどのようにすべきかの確たる情報がない。
で、以下のように最低限のスキーマ登録をやってみたら、エラーはでなくなった。
var $useTable=false;
var $_schema = array('id' => array('type' => 'integer'));
なお、googleディスカッションでは、開発責任者の方自らが、質問に答えていました。
nateようは、他のテーブルを使っているコントローラーでスキーマ情報をプリントアウトして、それを参考に、当該テーブルなしモデルでもスキーマを登録せよ、ということらしい。
I'm guessing based on the error that you're trying to use a model
which is not attached to a table to create the form. In one of your
controllers, take a model that *is* attached to a table and try
something like the following:
pr($this->Model->schema());
die();
That should give you an idea on how to implement schema().
try implementing schema?
Cake1.2bのお話。
▼ コメント(0件)
- TB-URL http://www.cpa-lab.com/tech/057/tb/