Я пытаюсь установить некоторые условные операторы для вложенных экземпляров embedRelation () и не могу найти способ передать какой-либо параметр во второй embedRelation.
У меня есть "Таблица отношений Measure-> Page-> Question ", и я хотел бы иметь возможность выбрать, отображать или нет таблицу Вопросов.Например, скажем, у меня есть две страницы «успеха», page1Success.php и page2Success.php.На странице 1 я хотел бы отобразить «Измерение-> Страница-> Вопрос», а на странице 2 я хотел бы отобразить «Измерение-> Страница», но мне нужен способ передать «параметр» в PageForm.class.php файл, чтобы принять такое решение.В моем файле actions.class.php есть что-то вроде этого:
// actions.class.php
$this->form = new measureForm($measure, array('option'=>$option));
для передачи параметра в «Страницу», но передача этого параметра через «Страницу» в «Вопрос» не работает.
Мой файл measureForm.class.php содержит в себе embedRelation, который зависит от "option":
// measureForm.class.php
if ($this->getOption('option') == "page_1") {
$this->embedRelation('Page');
}
, и это то, что я хотел бы сделать в моем файле pageForm.class.php:
// pageForm.class.php
if ($this->getOption('option') == "page_1") { // Or != "page_2", or whatever
$this->embedRelation('Question');
}
Я не могу найти способ сделать это.Есть идеи?
Есть ли предпочтительный способ выполнения операций такого типа в Symfony, возможно, без embedRelation?
Спасибо, -Trevor
По запросу, вот мой schema.yml:
# schema.yml
Measure:
connection: doctrine
tableName: measure
columns:
_kp_mid:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
description:
type: string()
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
frequency:
type: integer(4)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
relations:
Page:
local: _kp_mid
foreign: _kf_mid
type: many
Page:
connection: doctrine
tableName: page
columns:
_kp_pid:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
_kf_mid:
type: integer(4)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
next:
type: string()
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
number:
type: string()
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
previous:
type: string()
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
relations:
Measure:
local: _kf_mid
foreign: _kp_mid
type: one
Question:
local: _kp_pid
foreign: _kf_pid
type: many
Question:
connection: doctrine
tableName: question
columns:
_kp_qid:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
_kf_pid:
type: integer(4)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
text:
type: string()
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
type:
type: integer(4)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
relations:
Page:
local: _kf_pid
foreign: _kp_pid
type: one