Я хочу передать некоторые данные в JavaScript , но я получил пустые переменные, подобные этому
var testsCompany = {};
var testparams = "[{}]";
Это некоторая проблема, связанная с отложенной загрузкой данных в доктрине , я пытался изменить значение атрибута fetch в ManyToOne , но безуспешно.
Это мой код:
<script type="text/javascript">
var testsCompany = "{{ testsCompany|json_encode()|raw}}";
var testparams = "{{ testparams|json_encode()|raw}}";
</script>
Это моя сущность:
class TestParams
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* Many testparams have One test.
* @ORM\ManyToOne(targetEntity="Tests", inversedBy="testparams",fetch="EAGER")
* @ORM\JoinColumn(name="test_id", referencedColumnName="id")
*/
private $test;
/**
* Many testparams have One param.
* @ORM\ManyToOne(targetEntity="Params", inversedBy="testparams", fetch="EAGER")
* @ORM\JoinColumn(name="param_id", referencedColumnName="id")
*/
private $param;
/**
* @var bool
*
* @ORM\Column(name="required", type="boolean")
*/
private $required;
public function __construct()
{
$this->test = new ArrayCollection();
$this->param = new ArrayCollection();
}
public function __toString()
{
return '*';
}
}
и это код контроллера:
/**
* @Route("/generate/{id}", name="prestashoptest_db_generate")
*/
public function generateAction(Request $request)
{
$testId = $request->get('id');
$testRepo = $this->getDoctrine()->getRepository('PrestaShopTestBundle:Tests');
$testParamsRepo = $this->getDoctrine()->getRepository('PrestaShopTestBundle:TestParams');
$testParams = $testParamsRepo->findBy(array("test" => $testId));
$testsCompany = $testRepo->find($testId);
return $this->render('PrestaShopTestBundle:BOTest:generate.html.twig',
array(
"testsCompany" => $testsCompany,
"testParams" => $testParams,
)
);
}