ホームページ > 記事 > PHPフレームワーク > thinkphp でフォームを送信するときにデータを受信できない場合はどうすればよいですか?
フォーム送信に ThinkPHP フレームワークを使用している場合、フォーム データを受信できない状況が発生することがあります。この状況は、特にアプリケーションがさらなる処理のためにフォーム データを取得する必要がある場合に、間違いなく混乱と頭痛の種を引き起こすことになります。では、なぜこのようなことが起こるのでしょうか?この問題をどうやって解決すればよいでしょうか?次に、この記事ではそれらに 1 つずつ答えていきます。
最も一般的な状況は、フォームの送信時にフォームが検証されず、その結果プログラムがフォーム データを取得できないことです。この時点で、フォーム上のデータがサーバーに正しく送信できることを確認するために、フォーム上でいくつかの簡単な検証操作を実行する必要があります。
さらに、以下のような状況も考えられます:
(1) フォーム内の変数名とアクションコントローラー内の変数名が一致せず、データを取得できません。
##(2) フォームのメソッド属性が正しくないため、フォーム データを取得できません; (3) フォームにファイルのアップロードがある場合は、次を使用する必要があります。 $file = request()->file('file '); アップロードされたファイルを取得します。public function dealForm(Request $request){ $data = array(); $data['var1'] = $request->param('var1'); $data['var2'] = $request->param('var2'); $data['var3'] = $request->param('var3'); $result = $this->validate($data, [ 'var1|变量名1' => 'require', 'var2|变量名2' => 'require', 'var3|变量名3' => 'require' ]); if (true !== $result) { $this->error($result); } //处理表单数据 }(2) 変数名とメソッド属性の確認フォームを送信する前に、変数名を確認する必要があります。フォームとアクション コントローラーの変数 名前が一致しているかどうか、およびフォームのメソッド属性が正しいかどうか。フォーム内の変数名がアクションコントローラー内の変数名と一致し、メソッド属性が正しく設定されている場合にのみ、フォームデータを正常に取得できます。 (3) ファイルのアップロードフォームにファイルのアップロードがある場合、アップロードされたファイルを指定されたフォルダーに保存し、ファイル パスをデータベースに保存する必要があります。コード例:
$file = request()->file('file'); if ($file) { $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads'); if ($info) { $data['file'] = '/uploads/' . $info->getSaveName(); } else { $this->error($file->getError()); } }
以上がthinkphp でフォームを送信するときにデータを受信できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。