Symfony2에서는 $ form-> bind()를 사용하여 플러시하기 전에 이전 항목과 새 항목을 비교해야합니다. 폼 바인딩 전에 개체 복제
나는 일부 기능을 시도 :$command = $repository->findCommandProductsByCommand($id);
$old_command = clone $command;
// OR $old_command = $command;
$form = $this->createForm(new EditCommandType(), $command);
if($request->getMethod() == 'POST')
{
$form->bind($request);
if ($form->isValid())
{
을 그리고 나는이 같은 개체의 작은 부분을 저장하려고 :
$old_command = $command->getCommandProducts();
을하지만 난 $ old_command의 데이터에 액세스 할 때 이러한 메서드 중 하나는 폼에서 개체의 새로운 값에만 액세스하고 이전 개체에는 액세스하지 못하게합니다.
$ form-> bind ($ request)가 주된 문제이지만, exacly 무엇이 bind()를하는지 설명하는 문서를 찾지 못했습니다. 내 경우에 대한
솔루션
안부
$command_entries = new ArrayCollection();
foreach ($command->getCommandproducts() as $entry) {
$command_entries[] = clone $entry;
}
지금 내있는 ArrayCollection의 $의 command_entries 이전 기업에 연결되지 않은 (감사 zizoujab합니다). 복제 설명서에서
바인드() 제출 된 데이터를 소요하고 당신이 개체를 전달하면 당신의 엔티티에 해당 세터에 그 값을 설정합니다
여기에 대한 자세한 설명 및 솔루션의 샘플입니다. 이전 데이터를 새 데이터와 비교하려고합니까? 예를 들어 암호 변경이 이전과 같은 암호를 사용하고 있지 않은지 확인하십시오. – Chausser