我在数据库 ID、json、status 中得到了一个表,所有内容都在另一个表中工作,在这个表中我可以保存、读取但不能从存储库获取数据并传递给表单。看:
那是我的滑块类型表单
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'
),
))
在这里,我需要从选项解析器传递一个布尔状态变量,因此在控制器中我完成了它的外观:
//tworzymy formularz
$form = $this->createForm(SliderType::class, $request, array(
.
.
'status' => $slider->getStatus,
问题是另一个变量工作得很好,如果我只添加这个,我抛出了一个错误:
Cannot read index "status" from object of type "SymfonyComponentHttpFoundationRequest" because it doesn't implement ArrayAccess.
知道这里出了什么问题吗? 有趣的是,我得到了另一个带有另一个表(结构相同的(的控制器,并且一切正常。
你正在为表单的数据提供symfony的HttpRequest
。
这导致了您的问题
您应该传递将由表单水合的实体。将滑块实体提供给createForm
方法第二个参数
$form = $this->createForm(SliderType::class, $slider, array(
'status' => $slider->getStatus));
您应该告诉表单处理请求并从请求中提取数据,以使用表单水化实体。
$form->handleRequest($request);
您应该阅读表单文档