130 / 15 / 6
Регистрация: 05.08.2013
Сообщений: 285
1

Symfony2, работа с типом Collection, работа с базовой формой

18.11.2014, 15:49. Показов 2111. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Осваиваю создание CRUD приложения на Symfony 2, на примере.
Однако, возникают ошибки:
1)При модификации шаблона изменения новости:
Symfony2, работа с типом Collection, работа с базовой формой

должно получиться так:
Symfony2, работа с типом Collection, работа с базовой формой

но у меня осталась кнопка create:
Symfony2, работа с типом Collection, работа с базовой формой

Примечание:Этот рисунок содержит больше элементов, чем в примере т.к. это конечный вариант задания, я не стал откатывать до момента изменения формы редактирования.
2)При добавлении типа collection:
PHP
1
2
3
4
5
6
7
8
9
$builder->add('title', 'text', array('label' => 'Заголовок'))
                ....
              ->add('newsLinks', 'collection', array(
                                               'label' => 'Ссылки к новости',
                                               'type' => new NewsLinkType(),
                                               'allow_add' => true,
                                               'allow_delete' => true,
                                               'prototype' => true
                                              ));
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
namespace Test\NewsBundle\Form;
 
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
 
class NewsLinkType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder->add('url')
                ->add('text');
    }
 
    public function getName()
    {
        return 'newsLinkType';
    }
 
 
    public function getDefaultOptions(array $options)
    {
        return array(
            'data_class' => 'Test\NewsBundle\Entity\NewsLink',
        );
    }
}
Javascript
1
2
<!-- При нажатии на кнопку #addLink он добавляется к таблице -->
   <script type="text/html" id="nl">{{ _self.linkRow (form.newsLinks.get('prototype')) }}  </script>
У меня возникает такая ошибка:
Symfony2, работа с типом Collection, работа с базовой формой

Как я понимаю, почему-то не находит метод get.
Пробовал
Javascript
1
<script type="text/html" id="nl">{{ _self.linkRow (form.newsLinks.vars.prototype) }}  </script>
Такая же ошибка.
Посмотрел здесь, вроде все правильно, только немного по другому, т.к. свои задачи.
0
18.11.2014, 15:49
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.11.2014, 15:49
Ответы с готовыми решениями:

Описать свойство класса с типом Collection и соответствующие Property методы
Описать свойство класса с типом Collection и соответствующие Property методы Ребят нужна помощь.В понедельник экзамен VBA. Препод...

Работа с формой
Подскажите можно ли менять местами формы, в Visual studia 2010? Т.е. у меня есть 10 форм, я хочу чтобы они при отладке загружались не по...

Работа с формой
Коллеги, день добрый. Помогите разобраться. Вопрос 1. В результате отработки ниже представленного кода, всегда выводится сообщение...

2
130 / 15 / 6
Регистрация: 05.08.2013
Сообщений: 285
26.11.2014, 01:20  [ТС] 2
Ответ на то, как заменить название submit'а, я нашел:
Ниже, шаблон twig, отнесу его к html коду:
HTML5
1
2
3
4
5
6
7
{{ form_start(form) }}
         {% extends '::base.html.twig' %}
 
        {# .....какие то иные элементы формы #}
        {# переопределение элементов формы #}
        {{ form_widget(form.submit, { 'label': 'Создать тест','attr': {'class': 'createTest'} }) }}
    {{ form_end(form) }}
Выше присваиваю label, для сущности submit, которая наследуется из base.html.twig
Также, можно поменять в классе для управления формой, который предварительно генерируется doctrine вместе с базовыми элементами формы для взаимодействия с БД, командой:
Bash
1
php app/console doctrine:generate:crud --entity=YourNameBundle:NewsLink --route-prefix=link_to_your_app --with-write --format=annotation
Что-то вроде этого:
PHP
1
2
3
4
5
6
7
8
9
10
/**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('submit', null, array('label' => 'Создать'));
            
     };
Но не получилось...странно
Более подробно написано в этом разделе
На второй вопрос пока не нашел ответ.
0
35 / 35 / 3
Регистрация: 27.10.2014
Сообщений: 120
29.11.2014, 23:41 3
метод Get надо в роутинге прописать для данного экшена.
1
29.11.2014, 23:41
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.11.2014, 23:41
Помогаю со студенческими работами здесь

Работа с формой
Что нужно сделать,чтоб когда при выполнении работы на форме поверх неё открывалось окно,а потом убиралось, Она продолжала работу,а не...

Работа с формой в С#
Помогите пожалуйста еще с таким вопросом.У нас есть форма,вот ее принтскрин. Когда мы вводим число в текстбокс &quot;положення вузла...

Работа с формой
Есть запрос из которого берутся данные для записи в форму.Как сделать так чтобы при выборе Организации в форме данные записывались в...

Работа JS с формой
Здравствуйте. Плохо разбираюсь в JS, но сделать надо на JS. Задача проста. Есть форма, надо чтобы при нажатии кнопки отправить,...

Работа с формой JS
Добрый день! Есть следующая проблема: на сайте (чужом) есть форма работающая на JS. То есть вводятся какие-то данные, нажимается кнопка и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Условные типы в TypeScript
stackOverflow 17.02.2025
Условные типы - это сильное средство TypeScript, позволяющее создавать типы, которые могут менять свое поведение в зависимости от определенных условий. По своей сути, они работают подобно тернарному. . .
TypeScript и оператор infer: разбиваем Composite-типы на части
stackOverflow 17.02.2025
В TypeScript композитные типы занимают особое место - это сложные типы данных, которые создаются путем объединения более простых типов. К ним относятся массивы, объекты, кортежи (tuples),. . .
Mapped-типы в TypeScript
stackOverflow 17.02.2025
TypeScript предоставляет развитые средства для типизации данных, и одним из наиболее гибких инструментов являются mapped-типы. По сути, mapped-тип или сопоставленный тип - это способ создания нового. . .
Как вернуть энтузиазм
Uswer 17.02.2025
Приветствую тебя читатель. Сначала небольшая предыстория. Лет 5-6 тому назад появилась у меня идея автоматизации некоего процесса на работе. А так как я уже много лет увлекаюсь (не путать с. . .
Оператор satisfies в TypeScript: как он работает и где применять
stackOverflow 17.02.2025
Оператор satisfies - одна из наиболее полезных возможностей TypeScript, позволяющая проверять типы значений без изменения их исходного типа. В отличие от других операторов типизации, satisfies дает. . .
Почему могут не шифроваться русские символы в Java
Wired 17.02.2025
При разработке на Java нередко возникают сложности с шифрованием русских символов. Эта проблема особенно актуальна для разработчиков, создающих программное обеспечение для русскоязычной аудитории. . . .
Отличия ОС для x86_64 и ARM
Wired 17.02.2025
На данный момент сосуществуют две основные архитектуры процессоров - x86_64 и ARM. Эти архитектуры имеют принципиально разные подходы к организации вычислений и обработке данных, что накладывает. . .
Многопоточность в Python: как использовать Thread
bytestream 17.02.2025
Поток выполнения (thread) - это наименьшая последовательность инструкций, которая может управляться планировщиком операционной системы. Представьте себе, что ваша программа - это книга, а потоки -. . .
Как воспроизвести Race Condition в Python
bytestream 17.02.2025
В многопоточном программировании существует множество подводных камней, и одним из самых коварных является состояние гонки (Race Condition). Этот термин описывает ситуацию, когда результат выполнения. . .
Ошибка "node: --openssl-legacy-provider is not allowed in NODE_OPTIONS"
bytestream 17.02.2025
Каждый разработчик рано или поздно сталкивается с ситуацией, когда при запуске проекта Node. js неожиданно выскакивает ошибка "node: --openssl-legacy-provider is not allowed in NODE_OPTIONS". Это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru