Hey, Thanks for your time.
I fixed the contactsForm.class.php and it's working fine now. I was able to fix the error by extending the BasecontactForm and not the BaseFormDoctrine file (As mentioned in the manual) That's weird because the BasecontactsForm extends BaseFormDoctrine and the BaseFormDoctrine extends ahBaseFormDoctrine, so it should work fine. grtz On May 26, 4:48 pm, Daniel Lohse <[email protected]> wrote: > Erm, plugin developer here ;-) – > > 1. You don't need to call embedRelation(); that's called internally by the > plugin's embedRelations() method. > > 2. Calling embedRelation() AND embedForm() AND embedRelations() on the same > field names is just wrong – you only need to call embedRelations() once with > your array('websites', 'emails', 'telnumbers'), the rest is done for you by > the plugin. > > Now, as for the error: I have no idea why that is (maybe it's going away when > following the advice above) and as it's used by 19 people now (or more) that > don't report this error I don't know what to tell you right now. You'd have > to do some debugging and come up with a possible culprit that's causing this > error for you. ;-) > > Cheers and thanks for using my plugin :) > > Daniel > > On 26.05.2010, at 11:28, Ilias Barthelemy wrote: > > > Hello everyone, > > > I'am new to symfony and strugling with the ahDoctrineEasyEmbeddedRelations > > plugin. > > > I followed the manual > > onhttp://www.symfony-project.org/plugins/ahDoctrineEasyEmbeddedRelation...without > > success (getting error 'Call to undefined method > > contactsForm::embedRelations') > > Using symfony 1.4.4 & Doctrine 2.2 > > > Outline: > > > Installed the ahDoctrineEasyEmbeddedRelations using svn > > > config/ProjectConfiguration.class.php > > > <?php > > > require_once dirname(__FILE__).'/../lib/autoload/sfCoreAutoload.class.php'; > > sfCoreAutoload::register(); > > > class ProjectConfiguration extends sfProjectConfiguration > > { > > public function setup() > > { > > > > $this->enablePlugins('sfDoctrinePlugin','ahDoctrineEasyEmbeddedRelationsPlugin','sfFormExtraPlugin'); > > } > > } > > ?> > > > lib/form/doctrine/BaseFormDoctrine.class.php > > > <?php > > > abstract class BaseFormDoctrine extends ahBaseFormDoctrine > > { > > public function setup() > > { > > } > > } > > > ?> > > > symfony plugin:publish-assets command output: > > > >> plugin Configuring plugin - sfDoctrinePlugin > > >> plugin Configuring plugin - ahDoctrineEasyEmbeddedRelationsPlugin > > >> plugin Configuring plugin - sfFormExtraPlugin > > Turu:/var/www/web001# > > > So it seems thath the plugin is working, right ? > > > Clear cache ... > ok > > > This is my schema: > > > contacts: > > actAs: { Timestampable: ~ } > > columns: > > id: { type: integer(9), primary: true, autoincrement: true } > > title: { type: enum, notnull: true, values: [Mr, Mrs, Ms, Miss] } > > firstName: { type: string(100), notnull: true, minlength: 2 } > > lastName: { type: string(100), minlength: 2 } > > company: { type: string(100), minlength: 2, unique: true } > > addressStreet: { type: string(100), minlength: 2 } > > addressNr: { type: string(10) } > > adressBus: { type: string(10) } > > town: { type: string(10) } > > postalCode: { type: string(10) } > > remarks: { type: string(2000) } > > profession: { type: string(100) } > > relations: > > websites: > > type: many > > class: websites > > local: id > > foreign: contacts_id > > onDelete: CASCADE > > emails: > > type: many > > class: emails > > local: id > > foreign: contacts_id > > onDelete: CASCADE > > telnumbers: > > type: many > > class: telnumbers > > local: id > > foreign: contacts_id > > onDelete: CASCADE > > > websites: > > columns: > > id: { type: integer(9), primary: true, autoincrement: true } > > url: { type: string(100), notnull: true, unique: true, regexp: > > '(http|https)://([\w-]+\.)+(/[\w- ./?%&=]*)?' } > > type: { type: enum, notnull: true, values: [work,private,secure] } > > contacts_id: { type: integer(9) } > > > emails: > > columns: > > id: { type: integer(9), primary: true, autoincrement: true } > > email: { type: string(100), notnull: true, unique: true, minlength: 10 } > > type: { type: enum, notnull: true, values: [work,private] } > > contacts_id: { type: integer(9) } > > > telnumbers: > > columns: > > id: { type: integer(9), primary: true, autoincrement: true } > > number: { type: string(100), notnull: true, unique: true, minlength: 10 > > } > > type: { type: enum, notnull: true, values: [work,home,mobile,fax] } > > contacts_id: { type: integer(9) } > > > This is the generator.yml > > > generator: > > class: sfDoctrineGenerator > > param: > > model_class: contacts > > theme: admin > > non_verbose_templates: true > > with_show: false > > singular: ~ > > plural: ~ > > route_prefix: contacts > > with_doctrine_route: true > > actions_base_class: sfActions > > > config: > > actions: ~ > > fields: > > title: { label: Title } > > firstName: { label: First name } > > lastName: { label: Last name } > > company: { label: Company } > > addressStreet: { label: Street } > > addressNr: { label: Nr } > > adressBus: { label: Bus } > > town: { label: Town } > > postalCode: { label: Postal code } > > remarks: { label: Remarks } > > profession: { label: Profession } > > list: > > layout: stacked > > title: Contact Management > > display: [firstName, lastName, company, profession] > > sort: [created_at, desc] > > max_per_page: 10 > > filter: > > display: [title, firstName, lastName, company, profession, > > addressStreet, town, postalCode, created_at, updated_at] > > form: > > display: ~ > > edit: > > title: Editing Contact "%%firstName%%" "%%lastName%%" > > new: > > title: New contact > > > And here we have the form class: > > > <?php > > class contactsForm extends BasecontactsForm > > { > > public function configure() > > { > > > unset($this['created_at'], $this['updated_at']); > > $this->embedRelation('websites'); > > $this->embedRelation('emails'); > > $this->embedRelation('telnumbers'); > > > $this->embedForm('websites', new websitesForm()); > > $this->embedForm('emails', new emailsForm()); > > $this->embedForm('telnumbers', new telnumbersForm()); > > > $this->embedRelations(array( > > 'websites' => array( > > 'considerNewFormEmptyFields' => array('url', 'type') > > ))); > > > /*$this->embedRelations(array( > > 'websites' => array( > > 'considerNewFormEmptyFields' => array('url'), > > 'noNewForm' => false, > > 'newFormLabel' => 'New website', > > 'newFormClass' => 'websitesForm', > > 'newFormClassArgs' => array(), > > 'displayEmptyRelations' => false, > > 'formClass' => 'websitesForm', > > 'formClassArgs' => array(), > > 'newFormAfterExistingRelations' => true, > > 'formFormatter' => null, > > 'multipleNewForms' => true, > > 'newFormsInitialCount' => 2, > > 'newFormsContainerForm' => null, // pass BaseForm object here > > or we will create ahNewRelationsContainerForm > > 'newRelationButtonLabel' => '+', > > 'newRelationAddByCloning' => true, > > 'newRelationUseJSFramework' => 'jQuery' > > )));*/ > > > } > > } > > ?> > > > It seems like Symfony doesn't auto include the plug-in class. > > > Please help me out here guys , help would be much appreciated. > > > Thanks Firemonkey -- If you want to report a vulnerability issue on symfony, please send it to security at symfony-project.com You received this message because you are subscribed to the Google Groups "symfony users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en
