![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/FormBundle/DataFixtures/ORM/ |
<?php namespace Mautic\FormBundle\DataFixtures\ORM; use Doctrine\Common\DataFixtures\AbstractFixture; use Doctrine\Common\DataFixtures\OrderedFixtureInterface; use Doctrine\Persistence\ObjectManager; use Mautic\CoreBundle\Helper\CsvHelper; use Mautic\FormBundle\Entity\Submission; use Mautic\FormBundle\Model\SubmissionModel; use Mautic\PageBundle\Model\PageModel; class LoadFormResultData extends AbstractFixture implements OrderedFixtureInterface { public function __construct( private PageModel $pageModel, private SubmissionModel $submissionModel ) { } public function load(ObjectManager $manager): void { $importResults = function ($results): void { foreach ($results as $rows) { $submission = new Submission(); $submission->setDateSubmitted(new \DateTime()); foreach ($rows as $col => $val) { if ('NULL' != $val) { $setter = 'set'.\ucfirst($col); if (\in_array($col, ['form', 'page', 'ipAddress', 'lead'])) { if ('lead' === $col) { // For some reason the lead must be linked with id - 1 $entity = $this->getReference($col.'-'.($val - 1)); } else { $entity = $this->getReference($col.'-'.$val); } if ('page' == $col) { $submission->setReferer($this->pageModel->generateUrl($entity)); } $submission->$setter($entity); unset($rows[$col]); } else { // the rest are custom field values break; } } } $submission->setResults($rows); $this->submissionModel->getRepository()->saveEntity($submission); } }; $results = CsvHelper::csv_to_array(__DIR__.'/fakeresultdata.csv'); $importResults($results); \sleep(2); $results2 = CsvHelper::csv_to_array(__DIR__.'/fakeresult2data.csv'); $importResults($results2); } public function getOrder() { return 9; } }