TP作成機能が無効です

WBOY
WBOYオリジナル
2016-06-20 12:28:54891ブラウズ

データベースは oracle11g です。最初は Oracle フィールドのせいだと思いましたが、後で投稿インデックスをすべて大文字に変更しましたが、それでも機能しませんでした。

class TestAction extends Action{	function add(){		if(IS_POST){			$m=D('Test');                        //post索引改大写			$_POST=array_change_key_case($_POST,CASE_UPPER);			show_bug($_POST);			$vo=$m->create();                        //返回空数组			show_bug($vo);			//返回false			show_bug($m->add());//->add();			show_bug($m->_sql());		}else{			$this->display();		}	}}

解決しましょう! !


ディスカッション (解決策) への返信

右?
作成とはモデルから自動検証を作成することです
モデルはどのように作成しましたか?
MySQL の場合、TP は DESCRIBE コマンドを使用してフィールド情報を取得します。
Oracle には DESCRIBE コマンドがないため、TP はそれを完了しますか?



ですよね?
作成とはモデルから自動検証を作成することです
モデルはどのように作成しましたか?
MySQL の場合、TP は DESCRIBE コマンドを使用してフィールド情報を取得します。
Oracle には DESCRIBE コマンドがないため、TP はそれを完了しますか?

モデルには trueTableName のみが記述されています。これは、create メソッドが Oracle をサポートしていないことを意味しますか?

現在の TP が MySQL 以外のデータベースをどの程度サポートしているかはわかりません
テーブルごとにテーブル構造ファイルを構築する必要があると言われています

show_bug($m- >_sql( )) 結果:
select a.column_name,data_type,decode(nullable,'Y',0,1) notnull,data_default,decode(a.column_name,b.column_name,1,0) pk from user_tab_columns a,( select column_name from user_constraints c,user_cons_columnscol where c.constraint_name=col.constraint_name and c.constraint_type='P'and c.table_name='TEST1') b where table_name='TEST1' and a.column_name=b .column_name(+ )
はフィールド情報を取得するために使用されます:

解決されました。これは TP のバグです。フィールド

はモデル内で指定する必要があります。主な理由は、Oracle には DESCRIBE がないため、TP を実装できないことですが、この問題には特に対処していません。
これは、モデル内でフィールドを指定することによってのみ解決できます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。