I send data via ajax in controller. I create form dynamically in jquery, that's why i have array in my post request. It look likes this
array (size=3)
'login' =>
array (size=2)
0 => string 'trololo' (length=7)
1 => string 'trololo2' (length=8)
'pass' =>
array (size=2)
0 => string 'trololo' (length=7)
1 => string 'trololo2' (length=8)
'email' =>
array (size=2)
0 => string 'trololo@gmail.com' (length=17)
1 => string 'trololo@gmail.com2' (length=18)
In my controller I want persist it in my db. I do that like:
$data = $request->request->all();
$i = 0;
foreach($data as $ud)
{
$user[] = new User();
$user->setLogin($ud['login[$i]']);
$user->setPass($ud['pass[$i]']);
$user->setEmail($ud['email[$i]']);
$em->persit($user[$i])
$em->flush();
$em->clear();
$i++
}
But it does not working. Please, help me to solve this problem
You are mixed $user as array as as object. Also input $data contain arrays to save, but you do not need foreach for $data itself.
Try change it to:
$data = $request->request->all();
foreach($data['login'] as $i => $login)
{
$user = new User();
$user->setLogin($login);
$user->setPass($data['pass'][$i]);
$user->setEmail($data['email'][$i]);
$em->persit($user);
$em->flush();
$em->clear();
}