Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Чекбоксы в symfony2
J1upuk  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 132
Пользователь №: 37693
На форуме: 3 года, 5 месяцев, 14 дней
Карма: 1




Есть страница заказов в которую выводятся данные из базы, нужно добавить чекбоксы к каждой позиции, дропбокс и кнопку отправки формы. С дропбоксом и сабмитом не сложно, но как вывести чекбоксы чтобы появились возле каждой позиции и передавали значение id этой позиции, вот что я написал:

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


Я с симфони только познакомился, поэтому многих моментов не понимаю. Подскажите, что не так? Как только уже не пытался что либо делать, не выходит.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Oyeme  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Reality is wrong. Dreams are for real
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1673
Пользователь №: 16955
На форуме: 7 лет, 9 месяцев, 10 дней
Карма: 94




Вам нужно испоользовать themes

http://symfony.com/doc/current/cookbook/fo...tomization.html

Что-то типо такого,и передаете туда id итд

{% form_theme form _self %}

{% block checkbox_widget %}
{% spaceless %}
<input type="checkbox" {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />
{% endspaceless %}
{% endblock checkbox_widget %}


--------------------
Programming: Private lessons via skype £45/h

Частные уроки в Лондоне / удаленно по skype.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса