법인을 인코딩 할 때 후행 슬래시 이유 :JSON 배열 -
//...
/**
* @ORM\Column(type="json_array", nullable=true)
*/
protected $params = null;
function setParams($params)
{
$this->params = $params; //json_encode($params);
}
및 양식 유형 :
//...
->add('params', null, array(
'required' => false,
))
그래서, 아무것도 이상한. 위의 코드는 올바르게 작동합니다. 하지만 setParams 메서드의 줄을 "json_encode ($ params);"로 변경하면 (오른쪽에있는 PHP 주석을 참고하십시오), DB에 슬래시가 생깁니다 (var를 덤프하면 DB에 저장하기 전에 괜찮아 보입니다). 그리고 그것은 DB에서만 잘못된 것이며 인코딩 할 때만입니다. 흥미롭게도, 배열을 setParams에 직접 전달하는 것만으로도 충분합니다. Doctrine은 올바르게 저장합니다 ...
누군가가 왜 그 이유를 설명 할 수 있습니까?
"나쁜"데이터를 설명하는 대신 대신 예제를 복사/붙여 넣기하는 방법은 무엇입니까? – Sammitch
@Sammitch 문제와 직접적으로 관련된 코드 만 넣으면 그 요점이 희미 해집니다. – forsberg
@Sammitch에 동의합니다. 데이터베이스에서 이러한 후행 슬래시의 예를보고 싶습니다. 열 유형을'json_array'로 정의 했으므로, 데이터를 직접 json_encode() 할 때 이중 인코딩이 발생한다고 생각합니다. 그러나이를 확인하기 위해서는 잘못된 데이터의 예를 찾아야합니다. – rickdenhaan