Symfony 4のPOSTグローバル変数の結果を取得するのに非常に奇妙な問題があります。
私はこの方法を試しました:
$date = $request->request->get('date');
これは、カレンダー入力の日付が変更されたときにAJAXリクエストを実際に送信する方法です。
onSelect: function(date, instance) {
$.ajax({
url : 'home',
type : 'POST',
data : {'date':date},
dataType : 'html',
success : function(code_html, statut){
console.log(statut);
},
error : function(resultat, statut, erreur){
},
complete : function(resultat, statut){
}
});
OnSelectコールバックは、必要な日付値を正常に受け取ります。
そして、この結果は、日付変数の正しい値を持つ200成功コードを示しています。
しかし、$ dateはnull
です。
あなたが直面する可能性のある問題は、PHP=が変数を投稿の本文から$ _POSTに変換するために使用し、Symfonyが$ _POSTを使用してリクエストオブジェクトデータに入力するAccept HTMLヘッダーに関連しています。
この動作を実現するには、ヘッダーapplication/x-www-form-urlencoded
またはmultipart/form-data
を使用する必要があります。
実際にそうなっているかどうかを確認するには、コードを使用する必要があります。
dump($request->getContent());
変数でいっぱいの場合、PHPはMIMEの不一致のために$ _POSTに変換しません。そうでない場合、リクエストが正しくないことを意味します。
Post変数にアクセスする通常のアプローチは次のとおりです。
public function index(Request $request)
{
dump($request->getContent()); // get raw body of http request
dump($request->request->get('date')); //get converted variable date by php and then by symfony
}
チェックに役立つリンク: