2011-11-05 3 views
0

여기에 질문이 있습니다. symfony 1.0에서 실행되는 웹 사이트가 있습니다. symfony admin 생성기 도구를 사용하여 데이터베이스의 정보를 편집하는 인터페이스를 생성했습니다. 편집 페이지에서 정수 값을 데이터베이스에 저장해야하는 일부 텍스트 필드가 있습니다. 내가 겪고있는 문제는 정수 필드를 필요로하는 텍스트 필드에 아무 것도 넣지 않고 SAVE를 누르면 ZERO의 값이 null 대신 데이터베이스에 저장된다는 것입니다. 데이터베이스의 구조에서 정수가 저장되는 열의 유형은 INT (11) DEFAULT NULL 유형입니다. 그래서 아무 것도 입력하지 않으면 일반적으로 NULL을 저장해야합니다.INT (php, symfony) 유형의 null 값을 저장할 수 없습니다.

어떤 생각이 잘못 될지 모릅니다.

+0

schema.yml 파일을보고 해당 테이블의 동작을 확인하십시오. 데이터베이스 구조가 기본적으로 'null'을 허용하지만 ORM이 0이 아닌 경우 0으로 설정합니다. –

답변

5

예, 양식 필드는 항상 String입니다. 따라서 아무 것도 입력하지 않고 제출할 때 실제로는 '' (빈 문자열)을 제출하여 0으로 변환됩니다. 입력이 비어 있지 않은지 확인하기위한 간단한 조건을 포함하고 적절한 경우 적절한 조치를 취해야합니다.

if (empty($_POST['input'])) { $variable_to_pass = null; } 
+0

대신 유형을 문자열로 변경하십시오. –

관련 문제