thinkphpの問題相談

WBOY
WBOYオリジナル
2016-09-08 08:43:501262ブラウズ

フィールドフィルタリング
データテーブルに存在しないフィールドデータが書き込まれると、直接フィルタリングされます。例:
$data['name'] = 'thinkphp';
$data['email'] = ' thinkphp@ gmail.com';
$data['test'] = 'test';
$User = M('User');
$User->data($data)->add();
コードをコピーします
テストフィールドは存在しないため、データの書き込み時に自動的に除外されます。
バージョン 3.2.2 以降では、デバッグ モードがオンになっている場合、次のプロンプトを表示して例外がスローされます: 不正なデータ オブジェクト: [test=>test]

上記はマニュアルからのもので、デバッグはオンになっていますが、エラーは報告されません。以前なら他のプロジェクトにも応募していただろう。公式Webサイトから最新のソースコードをリロードしましたが、エラーは報告されませんでした。特に更新の際、条件欄が間違って自分でフィルタリングして全てのデータを更新するのが大変でした

返信内容:

フィールドフィルタリング
データテーブルに存在しないフィールドデータが書き込まれると、直接フィルタリングされます。例:
$data['name'] = 'thinkphp';
$data['email'] = ' thinkphp@ gmail.com';
$data['test'] = 'test';
$User = M('User');
$User->data($data)->add();
コードをコピーします
テストフィールドは存在しないため、データの書き込み時に自動的に除外されます。
バージョン 3.2.2 以降では、デバッグ モードがオンになっている場合、次のプロンプトを表示して例外がスローされます: 不正なデータ オブジェクト: [test=>test]

上記はマニュアルからのもので、デバッグはオンになっていますが、エラーは報告されません。以前なら他のプロジェクトにも応募していただろう。公式Webサイトから最新のソースコードをリロードしましたが、エラーは報告されませんでした。特に更新の際、条件欄が間違って自分でフィルタリングして全てのデータを更新するのが大変でした

TP3.2.3のソースコードを調べてみたところ、$this->options['strict']が空でない場合のみエラーが報告されることが分かりました。このoptions['strict']をどこで操作するかについては、見つかりませんでした。

バグのような気がします。
探してみてください。

thinkphp_3.2.3_full/ThinkPHP/Library/Think/Model.class.php
267 ~ 277 行目:

リーリー

条件がある場合は、where()の連続演算を追加できます

ThinkPHPLibraryThinkModel.class.php には 2 つのエラーがあります。1 つは条件エラーで、もう 1 つは挿入操作フィールドのエラーです。
thinkphpの問題相談
特定のエラーについては解決策がありません。3.2.2と比較して同じ条件に変更しましたが、大きな問題はありません。

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