使用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綁定()的文檔。
問候
解決我的情況(感謝zizoujab)
$command_entries = new ArrayCollection();
foreach ($command->getCommandproducts() as $entry) {
$command_entries[] = clone $entry;
}
現在我的ArrayCollection $ command_entries不鏈接到以前的實體。
bind()的需要提交的數據,如果你傳遞一個實體設置這些值各自制定者對你的實體。您是否嘗試將舊數據與新數據進行比較?例如,確保密碼更改未使用與以前相同的密碼? – Chausser