Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {# builder #}
- $builder->add(
- 'companyphones',
- 'collection',
- array(
- 'type' => new CompanyPhoneType(),
- 'allow_add' => true,
- 'allow_delete' => true,
- 'prototype' => true,
- 'prototype_name' => 'phone'
- )
- );
- {# scheme #}
- <table name="company_phone">
- <column name="id" type="Integer" required="true" autoIncrement="true" primaryKey="true"/>
- <column name="company_phone_type_id" type="Integer" required="true"/>
- <column name="company_id" type="Integer"/>
- <column name="company_contact_id" type="Integer"/>
- <column name="number" type="Varchar" size="30" required="true"/>
- <foreign-key foreignTable="company">
- <reference foreign="id" local="company_id"/>
- </foreign-key>
- <foreign-key foreignTable="company_contact">
- <reference foreign="id" local="company_contact_id"/>
- </foreign-key>
- <foreign-key foreignTable="company_phone_type">
- <reference foreign="id" local="company_phone_type_id"/>
- </foreign-key>
- </table>
- <table name="company_phone_type">
- <column name="id" type="Integer" required="true" autoIncrement="true" primaryKey="true"/>
- <column name="description" type="Varchar" size="100" required="true"/>
- </table>
- <table name="company_contact">
- <column name="id" type="Integer" required="true" autoIncrement="true" primaryKey="true"/>
- <column name="company_id" type="Integer" required="true"/>
- <column name="first_name" type="Varchar" size="100" required="true"/>
- <column name="preposition" type="Varchar" size="20"/>
- <column name="surname" type="Varchar" size="100" required="true"/>
- <column name="initials" type="Varchar" size="10"/>
- <column name="phone_number" type="Varchar" size="30" required="true"/>
- <column name="email_address" type="Varchar"/>
- <column name="title" type="Varchar" size="100"/>
- <column name="position" type="Varchar" size="100"/>
- <column name="branche" type="Varchar" size="100"/>
- <column name="employed" type="Boolean" default="true" required="true"/>
- <column name="active" type="Boolean" default="true" required="true"/>
- <foreign-key foreignTable="company">
- <reference foreign="id" local="company_id"/>
- </foreign-key>
- <behavior name="timestampable"/>
- </table>
- {# form code #}
- <div id="contact_phonenumbers"
- data-prototype="{{ _self.widget_prototype(form.companyphones, 'Remove')|escape }}">
- {% for widget in form.companyphones.children %}
- {{ _self.widget_prototype(widget, 'Remove') }}
- {% endfor %}
- </div>
- <a class="btn-add" data-target="contact_phonenumbers">Add phone</a>
- {# form add js #}
- .on('click', '.btn-add', function (event) {
- var collectionHolder = $('#' + $(this).attr('data-target'));
- var prototype = collectionHolder.attr('data-prototype');
- var form = prototype.replace(/__name__/g, collectionHolder.children().length);
- collectionHolder.append(form);
- return false;
- })
- {# companyPhonyType #}
- <?php
- namespace Axtion\CompanyBundle\Form\Type;
- use Propel\PropelBundle\Form\BaseAbstractType;
- use Symfony\Component\Form\FormBuilderInterface;
- class CompanyPhoneType extends BaseAbstractType
- {
- protected $options = array(
- 'data_class' => 'Axtion\CompanyBundle\Model\CompanyPhone',
- 'name' => 'companyphone',
- );
- /**
- * {@inheritdoc}
- */
- public function buildForm(FormBuilderInterface $builder, array $options)
- {
- $builder->add('number');
- $builder->add(
- 'companyPhoneTypeId',
- 'axtion_jqueryselect2_model',
- array('class' => '\Axtion\CompanyBundle\Model\CompanyPhoneType', 'property' => 'description')
- );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment