Я не могу получить значения БД игр для выбора:
Game:
actAs:
Timestampable: ~
columns:
id: { type: integer(4), primary: true, autoincrement: true, unsigned: true }
game_name: { type: string(100), notnull: true }
logo: { type: string(100), notnull: true, comment: "Game Logo" }
indexes:
it:
fields: game_name
type: unique
Campaign:
actAs:
Timestampable: ~
columns:
id: { type: integer(4), primary: true, autoincrement: true, unsigned: true }
name: { type: string(100), notnull: true }
percentage: { type: integer(4), notnull: true, unsigned: true }
is_active: { type: integer(1), notnull: true, unsigned: true }
start: { type: datetime, notnull: true }
end: { type: datetime, notnull: true }
CampaignGames:
actAs:
Timestampable: ~
columns:
id: { type: integer(4), primary: true, autoincrement: true, unsigned: true }
campaign_id: { type: integer(4), notnull: true, unsigned: true }
game_id: { type: integer(4), notnull: true, unsigned: true }
indexes:
tc:
fields: [campaign_id, game_id]
type: unique
relations:
Campaign: { onDelete: CASCADE, local: campaign_id, foreign: id, foreignAlias: CampaignCampaignGames }
Game: { onDelete: CASCADE, local: game_id, foreign: id, foreignAlias: GameCampaignGames }
Я добавил здесь флажок для игр, который принадлежит модели Game, чтобы позволить пользователю добавлять игры в CampaignGames, но, к сожалению, они никогда не проверялись ... И эти значения присутствуют в БД.
class AdminconsoleCampaignForm extends CampaignForm
{
public function configure()
{
parent::configure();
$this->widgetSchema['is_active'] = new sfWidgetFormSelectRadio(array(
'choices' => array(1 => 'On', 0 => 'Off'),
));
$games = Doctrine_Core::getTable('Game')->getGames();
$this->widgetSchema['game_id'] = new sfWidgetFormSelectCheckbox(array(
'choices' => $games
));
$this->validatorSchema['game_id'] = new sfValidatorChoice(array(
'choices' => array_keys($games)
, 'multiple' => true
, 'required' => false
));
$this->removeFields();
}
Также пытался использовать
$this->widgetSchema['game_id']->setDefault(array($data));
Не повезло. Как это решить? Я действительно застрял на этом.