我有一个具有数据库ID,json,状态的表,并且其他表中的所有内容都可以正常工作,在这个表中,我可以保存,读取但不能从存储库中获取数据并传递给表单。看:
那是我的SliderType表单
class SliderType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('status', ChoiceType::class, array(
'data' => $options['status'],
'choices' => array(
"Aktywna" => 1,
"Nieaktywna" => 0
),
'attr' => array(
'class' => 'form-control'
),
))
在这里,我需要从选项解析器传递一个状态值为boolean的状态变量,因此在控制器中,它看起来像这样:
//tworzymy formularz
$form = $this->createForm(SliderType::class, $request, array(
.
.
'status' => $slider->getStatus,
te的问题是,如果我仅添加此变量,则会抛出另一个错误:
Cannot read index "status" from object of type "Symfony\Component\HttpFoundation\Request" because it doesn't implement \ArrayAccess.
任何主意这里出了什么问题?而有趣的是,我得到了另一个控制器和另一个表(结构相同),并且一切正常。
答案 0 :(得分:0)
您正在将HttpRequest
的symfony赋予表单数据。
这引起了您的问题
您应传递将通过表格水合的实体。给您的滑块实体添加createForm
方法的第二个参数
$form = $this->createForm(SliderType::class, $slider, array(
'status' => $slider->getStatus));
比您应该告诉表单处理请求并从请求中提取数据以使您的实体充实您的表单。
$form->handleRequest($request);
您应该阅读form documentation