Hi Dennis,
there is my schema:
Feature:
tableName: feature
columns:
id:
type: integer(8)
primary: true
autoincrement: true
name:
type: string(255)
notnull: true
created_at: timestamp(25)
updated_at: timestamp(25)
relations:
OpinionFeature:
local: id
foreign: feature_id
type: many
Opinion:
tableName: opinion
columns:
id:
type: integer(8)
primary: true
autoincrement: true
title:
type: string(255)
notnull: true
opiniontxt:
type: string(2147483647)
notnull: true
is_active:
type: integer(1)
default: '0'
notnull: true
token:
type: string(255)
notnull: true
created_at: timestamp(25)
updated_at: timestamp(25)
relations:
OpinionFeature:
local: id
foreign: opinion_id
type: many
OpinionFeature:
tableName: opinion_feature
columns:
opinion_id:
type: integer(8)
primary: true
feature_id:
type: integer(8)
primary: true
score:
type: float(2147483647)
notnull: true
created_at: timestamp(25)
updated_at: timestamp(25)
relations:
Opinion:
local: opinion_id
foreign: id
type: one
Feature:
local: feature_id
foreign: id
type: one
Its very similar to your schema. Mine havent got foreign_type but i
think it works same yours... no?
I did that with mysql workbench and then build schema... :)
I think the problem was save embed forms i have to overwrite the
saveEmbedForms function to set the opinionid of the OpinionFeature
just at the moment of insert the opinion. Doing that it works, but i
dont know if its the right way.
Thank you very much.
On 5 oct, 05:10, Dennis <[email protected]> wrote:
> So what you have is a:
>
> <Opinion>--1-to-many --<OpinionFeature>--many-to-1--<Feature>
>
> (above is a good way to show a schema)
>
> So you have to set up your schema to reflect that:
>
> Keep in mind that you have to create the Parents, before creating the
> children.
> Parents HAVE an ID, Children are GIVEN or USE and ID.
>
> Parents are 'Opinion' and 'Feature'.
>
> Opinion:
> tableName: opinion
> columns:
> opinion_id:
> type: integer(8)
> primary: true
> sequence: opinion_opinion_id
> opinion_name:
> type: string(65)
> notnull: true
> relations:
> OpinionFeature:
> local: opinion_id
> foreign: opinion_id
> type: many
> foreignType: one
>
> Feature:
> tableName: feature
> columns:
> feature_id:
> type: integer(8)
> primary: true
> sequence: feature_feature_id
> feature_name:
> type: string(32)
> notnull: true
> feature_desc:
> type: string(128)
> notnull: true
> relations:
> OpinionFeature:
> local: feature_id
> foreign: feature_id
> type: many
> foreignType: one
>
> OpinionFeature:
> tableName: opinionfeature
> columns:
> opinion_id:
> type: integer(8)
> primary: true
> feature_id:
> type: integer(8)
> primary: true
> score:
> type: integer(2)
> notnull: true
> relations:
> Opinion:
> local: opinion_id
> foreign: opinion_id
> type: one
> foreignType: many
> Feature:
> local: feature_id
> foreign: feature_id
> type: one
> foreignType: many
>
> See if this works :-)
>
> Personally, I like graphical database design tools. I make the design,
> have it spit out the code for the database that I'm using, then make
> the database, use Doctrine to build the schema (instead of composing
> it like above), make my model-forms-filters, and go.
>
> I've had good luck using DezignForDatabases. The guy who makes it is
> very helpful and friendly. It's not perfect, but it's great for the
> price.
> On Oct 2, 3:39 am, Francisco José Núñez Rivera <[email protected]>
> wrote:
>
> > But all the opinions have the same features.
>
> > Feature -> id , desc
> > 1,Feature 1 ; 2, Feature2...
>
> > Opinion shows all the features..
> > Feature 1 -Score:
> > Feature 2 - Score:
>
> > OpinionFeature -> opinion_id , feature_id , score
> > I only insert a row here when im scoring a feature.
>
> > I think my schema is right... no?
>
> > Thank you very much.
>
> > 2009/10/1 Abraham Montilla <[email protected]>
>
> > > elkrema, if you have I have an Opinion with many Features then the right
> > > schema is
>
> > > Feature is: id, opinion_id, desc
> > > OpinionFeature is: opinion_id, score
>
> > > that's why you have an integrity constraint violation.... I don't know how
> > > i missed that first time i read your post hehe, that's all the problem
>
> > > 2009/10/1 elkrema <[email protected]>
>
> > >> With unsetting only option id doesn't work.
>
> > >> The problem is that i am inserting the object of main form and the
> > >> embedded objects too.
>
> > >> But i found a solution... I rewrite the function saveEmbeddedForms in
> > >> OpinionForm
>
> > >> public function saveEmbeddedForms($con = null, $forms = null)
> > >> {
>
> > >> foreach($this->getEmbeddedForms() as $opinionForm)
> > >> {
>
> > >> $opinionForm->getObject()->setOpinionId($this->getObject()->getId
> > >> ());
> > >> }
>
> > >> parent::saveEmbeddedForms($con, $forms);
> > >> }
>
> > >> I set the opinionid before saving the embed forms....I dont know if is
> > >> the good way..
>
> > >> Otherwise i have a new problem..
>
> > >> when i'm editing an opinion the value of the last feature is not
> > >> showed.. ¿?
>
> > >> Thank you!
>
> > >> On 30 sep, 07:21, Abraham Montilla <[email protected]> wrote:
> > >> > try just unsetting opinion_id, tell me if works
>
> > >> > 2009/9/29 elkrema <[email protected]>
>
> > >> > > Hello Abraham,
>
> > >> > > This is my code with i'm embedding forms in OpinionForm:
>
> > >> > > foreach($this->getObject()->getFeatures() as $feature)
> > >> > > {
> > >> > > $opinionf = new OpinionFeature();
> > >> > > $opinionf->setOpinionId($this->getObject()->id);
> > >> > > $opinionf->setFeatureId($feature->getId());
> > >> > > $this->embedForm($feature->getName(), new OpinionFeatureForm
> > >> > > ($opinionf));
> > >> > > }
>
> > >> > > With this code in when saving always get this flash message in the
> > >> > > first Feature...
>
> > >> > > * Feature id: Invalid.
>
> > >> > > And if i configure OpinionFeatureForm to unset the fields (just for
> > >> > > testing)
>
> > >> > > unset($this['opinion_id'], $this['feature_id']);
>
> > >> > > I get ..
>
> > >> > > SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or
> > >> > > update a child row: a foreign key constraint fails
> > >> > > (`opinion`.`opinion_feature`, CONSTRAINT `opinion_feature_ibfk_1`
> > >> > > FOREIGN KEY (`opinion_id`) REFERENCES `opinion` (`id`) ON DELETE
> > >> > > CASCADE)
>
> > >> > > Thank you for helping
>
> > >> > > On 29 sep, 01:25, Abraham Montilla <[email protected]> wrote:
> > >> > > > i think it's because when embedding the OpinionFeatureForms you're
> > >> not
> > >> > > > setting properly the foreign key to the objects, would be something
> > >> like
>
> > >> > > > for ( $i ..... ){
> > >> > > > $opfeat = new OpinionFeature();
> > >> > > > $opfeat->setOpinionId($this->getObject->getId());
> > >> > > > $OFform = new OpinionFeatureForm($opfeat);
> > >> > > > $this->embedForm('Feature_'.$i, $OFform);
>
> > >> > > > }
>
> > >> > > > 2009/9/28 elkrema <[email protected]>
>
> > >> > > > > Hello
>
> > >> > > > > i have some problems with my embed forms and i can't find a
> > >> > > > > solution...
>
> > >> > > > > I have an Opinion with many Features..
>
> > >> > > > > Feature is: id, desc
> > >> > > > > OpinionFeature is: opinion_id, feature_id,score
>
> > >> > > > > In OpinionForm i'm inserting with [for each] all the features,
> > >> > > > > but
> > >> > > > > when im creating a new opinion i always get [Integrity constraint
> > >> > > > > violation]
>
> > >> > > > > I'ts easy get the id of the feature but i can get the ID of the
> > >> > > > > opinion because it isnt created yet... is null.
>
> > >> > > > > Somebody can help me please? I get trought many forums and jobeet
> > >> > > > > tutorial but i cant get the solution!
>
> > >> > > > > PS. Sorry for me english!!
>
> > >> > > > --
> > >> > > > Have a nice day.
> > >> > > > Abraham Montilla.
>
> > >> > --
> > >> > Have a nice day.
> > >> > Abraham Montilla.
>
> > > --
> > > Have a nice day.
> > > Abraham Montilla.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---