Symfony 表单类型从另一个实体添加查询构建器
Posted
技术标签:
【中文标题】Symfony 表单类型从另一个实体添加查询构建器【英文标题】:Symfony formtype add query builder from another entity 【发布时间】:2021-09-03 03:53:55 【问题描述】:有人知道我是否可以将 sql 查询放入表单类型中吗? 我创建了一个函数,现在我想在构建器中调用它,但它要求我传递一个参数
public function hoursCalendar(ParametresRepository $repoParam)
$hours = $repoParam->find(1);
$minHours = $hours->getCalendarStartTime();
$maxHours = $hours->getCalendarEndTime();
$range = range($minHours , $maxHours);
return $range;
public function buildForm(FormBuilderInterface $builder, array $options)
$this->hoursCalendar();
$var = 15;
$builder
->add('title')
->add('start', DateTimeType::class, [
'date_widget' => 'single_text',
'time_widget' => 'choice',
'hours' => range( $var, 18),
'minutes' => [ 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55
],
])
->add('end', DateTimeType::class, [
'date_widget' => 'single_text',
'time_widget' => 'single_text'
])
->add('description')
->add('resource')
->add('all_day')
->add('background_color', ChoiceType::class, array(
'label' => false,
'placeholder' => 'Type de RDV',
'choices' => array(
'Client' => "#800000",
'Formation' => "#ADD8E6"),
))
->add('border_color', ChoiceType::class, array(
'label' => false,
'placeholder' => 'User',
'choices' => array(
'Bart' => "#000000",
'Loic' => "#00FF00"),
))
->add('text_color', ColorType::class)
;
最后,我要做的是将我拥有的信息放入 calendarStartTime 和 calendarEndTime 以替换“小时”范围内的值:范围(calendarStartTime,calendarEndTime),
谢谢
【问题讨论】:
在构造函数中注入ParametresRepository
就可以了
【参考方案1】:
在构造函数中注入ParametresRepository
:
private $repoParam;
public function __construct(ParametresRepository $repoParam)
$this->repoParam = $repoParam;
那么hoursCalendar
中的参数就不需要了:
public function hoursCalendar()
$hours = $this->repoParam->find(1);
$minHours = $hours->getCalendarStartTime();
$maxHours = $hours->getCalendarEndTime();
$range = range($minHours , $maxHours);
return $range;
【讨论】:
以上是关于Symfony 表单类型从另一个实体添加查询构建器的主要内容,如果未能解决你的问题,请参考以下文章