2017-01-12 7 views
-1

필드가 많이있는 양식이 있는데 양식 데이터가 단일 배열이어야합니다.필드가 많이있는 양식이 있고 양식 데이터가 단일 배열로 있어야합니다.

예를 들어

:

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

그래서 내가 양식 필드를 제공 :의 양식 필드 이름은 name, username, password 등이며, 내가 $user라는 이름의 배열 안에이 모든 필드를 얻을 필요가 있다고 가정하자이 좋아 $user['name']으로 표시되지만 다음과 같은 오류 메시지가 표시됩니다.

이름에 잘못된 문자가 포함되어 있습니다. 이름은 문자, 숫자 또는 밑줄로 시작해야하며 문자, 숫자, 숫자, 밑줄 ("_"), 하이픈 ("-") 및 콜론 (":") 만 포함해야합니다.

아무도 내가 알아낼 수 있습니까? 이 같은

+0

질문에 ** 정확한 오류 **를 표시하십시오. "같은 오류"는별로 유용하지 않습니다. PHP 자체는 이러한 오류를 발생시키지 않으므로 symfony를 추측합니다. –

+0

@cale_b 예 symfony에서이 메시지가 표시됩니다. –

+0

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

답변

0

의 이름을 지정 요소 :

user[name] 
user[password] 

'를 사용하지 않는 $를 사용하지 마십시오.

$은 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" 
    } 
} 

는 백 슬래시 추한 ... 따옴표를 이스케이프 포함하는 방법을 참조하십시오.