먼저 컨트롤러에 일부 문자열을 전송하는 양식이 있습니다. 이 컨트롤러는 먼저 데이터베이스의 해당 엔터티에 액세스 한 다음 해당 엔터티의 해당 문자열을 업데이트하려고합니다. 내가이 줄을 넣어 테스트 목적으로symfony2에서 데이터베이스에 대한 요청 문자열이 지속되지 않습니까?
$message = $request->request->get('message');
이 : 다음과 같이
나는 매개 변수를 검색
echo '<script>alert("the message is: ' . $message . '");</script>';
가 예상 메시지를 경고 - 그래서 내가 가서 가정> 그 $ 메시지 변수는 실제로 내 컨트롤러에 "올바르게"만듭니다.
$entity->setMessage($message);
이 데이터베이스에서 빈 값 결과 :
다음, 나는 엔티티 정보를 업데이트합니다. 오류가없고 서버가 손상되지 않습니다. $message
은 결코 운명에 도달하지 않습니다.
내 다음 가정은 엔티티 함수 setMessage에 문제가있을 수 있으므로 가능하면 모든 가능한 조합에서 (문자열) 캐스팅을 사용했습니다.
다음으로 나는 var_dump
을 모든 곳에 적용 할 수 있습니다. 그리고 심지어는 엔티티 속성 메시지가 "string(x)" xxxx
그래서 나는 아마
$em->persist($entity);
$em->flush();
을 잊어하지만 가진 것 같았다 심지어 가정 것이 지금까지
을 "잘가 제대로 할당됩니다"생각 넣어
나는 새로운 시험을 생각했다. 나는 $ test라는 새로운 변수를 만들었고, 임의의 문자열을 할당하고, setMessage를 호출했다. 당연히 이것이 가능하지 않을 수도 있다고 가정했다. 그게했다. 그것은 부드럽게 지속되었습니다.
요약하자면, 정확한 엔티티를 얻고, 문자열이로드되고 컨트롤러 내에 실제로 존재하며, 엔티티 메소드가 완벽하게 작동합니다. 엔티티 관리자는 계속해서 원하는 방식으로 플러시합니다.
무엇이 잘못 되었나요? 내 $test
문자열과 $message
문자열 사이의 유일한 차이점은 내가 알 수있는 것은 $message
이라는 요청에 따른 것입니다. 그 문제에 대한 나의 지식이 제한적인 것 같습니다.