Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: Symfony
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
fier
128 / 13 / 6
Регистрация: 05.08.2013
Сообщений: 275
1

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

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

Здравствуйте.
Осваиваю создание 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2014, 15:49
Ответы с готовыми решениями:

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

Работа с типом Expr
2) Определите функцию simplify, которая упрощает выражения типа Expr, применяя очевидные правила...

Работа с типом Expr
Работа с типом Expr. Используя тип Expr, определенный выше, реализуйте следующие функции...

Работа с типом List<>
Здравствуйте, тут такая задача нужно сделать академическую группу, но я столкнулся с такой...

Работа с типом tagDec
Добрый день! подскажите как правильно работать с типом tagDEC?

2
fier
128 / 13 / 6
Регистрация: 05.08.2013
Сообщений: 275
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
dim07
35 / 35 / 3
Регистрация: 27.10.2014
Сообщений: 120
29.11.2014, 23:41 3
метод Get надо в роутинге прописать для данного экшена.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2014, 23:41

Работа с типом datatime
появилась такая проблема: например, на форме есть комбобокс в котором можно выбрать какую-то дату...

Работа с символьным типом
Код:// ex10_4.cpp #include &lt;iostream&gt; using namespace std;...

Работа с типом Expr
4) Определите функцию eval, которая принимает два параметра: выражение типа Expr и список пар типа...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru