public function buildForm(FormBuilderInterface $builder, array $options) { $formUtil = parent::buildForm($builder, $options); $formUtil->addDescriptionElement(); $formUtil->addDateElement('boughtAt')->addDateElement('startedAt')->addDateElement('finishedAt')->addDateElement('returnedAt'); $builder->add('site', EntityType::class, array('class' => 'AppBundle:FinanceSite', 'choice_label' => 'title'))->add('amount', NumberType::class)->add('total', NumberType::class)->add('monthlyReturn', NumberType::class)->add('rate', NumberType::class)->add('type', ChoiceType::class, array('choices' => array_combine(Finance::getTypes(), Finance::getTypes()))); }
protected function execute(InputInterface $input, OutputInterface $output) { $title = $input->getArgument('title'); $date = $input->getArgument('date'); $amount = 0 - $input->getArgument('amount'); $months = $input->getArgument('months'); $em = $this->getContainer()->get('doctrine.orm.entity_manager'); $date = new \DateTime($date); $site = $em->getRepository('AppBundle:FinanceSite')->findOneByTitle('京东白条'); $start = clone $date; $end = $date->add(new \DateInterval('P1M')); foreach (range(1, $months) as $i) { $finance = new Finance(); $finance->setTitle($title . '第' . $i . '期'); $finance->setAmount($amount); $finance->setTotal($amount); $finance->setSite($site); $finance->setType(Finance::TYPE_LOAN); $finance->setBoughtAt($start); $finance->setStartedAt($start); $finance->setFinishedAt(clone $end); $finance->setReturnedAt(clone $end); $em->persist($finance); $end->add(new \DateInterval('P1M')); } $em->flush(); $output->writeln('done'); }