2017-01-12 11 views
-1

私は多くのフィールドを持つフォームを持っています。フォームデータは単一配列でなければなりません。例えば私はたくさんのフィールドを持ったフォームを持っています。フォームデータは単一の配列でなければなりません。

:のは、フォームフィールドの名前を仮定しようなどnameusernamepassword、であり、私はこれが好き$userという名前の配列内のこれらのすべてのフィールドを取得する必要があります:

$user = array('name' => 'foo', 'password' => 'bar', ...); 

だから私は、フォームフィールドを与えます$user['name']と表示されますが、次のようなエラーメッセージが表示されます。

名前に無効な文字が含まれています。名前は文字、数字またはアンダースコアで始まり、文字、数字、数字、アンダースコア( "_")、ハイフン( " - ")、およびコロン( ":")のみを含む必要があります。

私はそれを理解する手助けができますか?

user[name] 
user[password] 

$'を使用していない使用しないでください。このようなあなたの要素が

+0

あなたの質問に**正確なエラー**を表示してください。 "好きなエラー"はそれほど有用ではありません。 PHP自体はこれらのエラーを投げないので、symfonyを推測しています.... –

+0

@cale_bはいこれらのメッセージはsymfonyから表示されます –

+0

http://symfony.com/doc/current/reference /forms/types/collection.html –

答えて

0

名前。

$は、HTML変数ではなくPHP変数のためのものです。

名前の中に引用符を入れることは、$ _POST配列のキーを醜いものにしてしまいますので、使用しないでください(交響曲ではあなたを放棄しません)。引用符なし

お知らせ:単一引用符で

<input type="text" name="user[name]"/> 
<input type="text" name="user[password]"/> 

array(1) { 
    ["user"]=> 
    array(2) { 
    ["name"]=> 
    string(11) "Super Admin" 
    ["password"]=> 
    string(8) "PaSsWoRd" 
    } 
} 

<input type="text" name="user['name']"/> 
<input type="text" name="user['password']"/> 

array(1) { 
    ["user"]=> 
    array(2) { 
    ["\'name\'"]=> 
    string(11) "Super Admin" 
    ["\'password\'"]=> 
    string(8) "PaSsWoRd" 
    } 
} 

は、バックスラッシュが醜い...引用符をエスケープするために含まれている方法を参照してください。

関連する問題