OrderController.php
public function indexAction(Request $request)
{
$qb = $this->get('doctrine.orm.entity_manager')->createQueryBuilder();
$qb->select('o', 's')
->from('AppBundle:Order', 'o')
->leftJoin('o.sub_order', 's')
->setMaxResults(50)
;
$request->get('amazon_status') && $qb->andWhere('o.status = :amazon_status')->setParameter('amazon_status', $request->get('amazon_status'));
$request->get('local_status') && $qb->andWhere('o.local_status = :local_status')->setParameter('local_status', $request->get('local_status'));
$request->get('vendor_status') && $qb->andWhere('s.status = :vendor_status')->setParameter('vendor_status', $request->get('vendor_status'));
$orders = $this->get('knp_paginator')->paginate(
$qb->getQuery(),
$request->query->getInt('page', 1),
50
);
// выше не мой код, ниже мой:
$change_status_form = $this->createForm(new ChangeStatusType(), $orders);
return $this->render('AppBundle:Order:index.html.twig', [
'orders' => $orders,
'change_status_form' => $change_status_form->createView()
]);
}
Класс формы:
<?php
namespace AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class ChangeStatusType extends AbstractType
{
public function ChangeStatusType(FormBuilderInterface $builder, array $options)
{
$builder
->add('check_order', 'entity', [
'class' => 'AppBundle:Order',
'property' => 'id',
'multiple' => true,
'expanded' => true,
'required' => false
])
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults([
'csrf_protection' => false
]);
}
public function getName()
{
return 'change_status_form';
}
}
Дальше шаблон:
{{ form_start(change_status_form.check_order[order.id]) }}
{% for order in orders %}
<tr>
<td>{{ form_widget(change_status_form.check_order[order.id]) }}</td>
// дальше выводится остальная информация о заказах
{% endfor %}
{{ form_end(change_status_form }}
Выдаёт ошибку:
Method "check_order" for object "Symfony\Component\Form\FormView" does not exist in AppBundle:Order:index.html.twig at line 79
Я с симфони только познакомился, поэтому многих моментов не понимаю. Подскажите, что не так? Как только уже не пытался что либо делать, не выходит.