List Info

Thread: Re: controller's main model's associated model instance variable




Re: controller's main model's associated model instance variable
country flaguser name
United States
2007-11-05 09:08:29
I have modeA HABTM modelB

On Nov 5, 2:11 pm, francky06l <franckl...gmail.com> wrote:
> Do you have modelB belongsTo ModelA in your relations
?
> cheers
> Franck
>
> On Nov 5, 12:03 pm, "thomas.m...gmail.com" <thomas.m...gmail.com>
> wrote:
>
> > well I thought the model instance was already
loaded but I can't
> > explain why the behaviour is not the same if I
access the model A
> > instance.
>
> > I mean :
>
> > in my action A : there seems to be a instance of
model A
> > in my action B (called in action A) : a different
instance of model A
>
> > that is what I deduce from testing with the
following code :
>
> > in model A construct method :
$this->get_media_by_types = false.
>
> > in controller :
>
> >         function test() {
>
> >                 $this->autoRender = false;
> >                
$this->Media->get_media_by_types = true;
> >                 pr("controller : : " .
$this->Media->get_media_by_types);// prints
> > out 1 (true)
> >                 pr('request action : ' .
$this->requestAction('/media/test2'));//
> > prints out nothing (false)
>
> >         }
>
> >         function test2() {
>
> >                 $this->autoRender = false;
> >                 return
$this->Media->get_media_by_types;
>
> >         }
>
> > I deduce that there are 2 instances of Media model
created for each
> > action call.
>
> > this is not the case for the same test case using
$this->Item->Media-
>
> > >get_media_by_types for example.
>
> > any clues ?
>
> > thaks
>
> > thomas
>
> > On Nov 4, 12:13 pm, francky06l <franckl...gmail.com> wrote:
>
> > > You request the action in an action, one
instance of the modelB is
> > > already loaded and used. I think that quite
the way I expect it to
> > > work, creating new instances would make some
tasks very difficult to
> > > achieve as well as performances poor (in my
opinion).
> > > However, you can still create explicitly a
new instance of modelB in
> > > your action, or set some method in modelB to
"init" myVar.
>
> > > On Nov 3, 6:26 pm, "thomas.m...gmail.com" <thomas.m...gmail.com>
> > > wrote:
>
> > > > Hello all,
>
> > > > 2 models : model A - model B
> > > > 1 controller : controller A
> > > > 2 actions in controler A : action A -
action B
>
> > > > I set a variable to false in a model B
construct method :
>
> > > > $this->myVar  = false;
>
> > > > I then in controller A have a main model
A to which is associated
> > > > model B
> > > > in an action A I set the
$this->modelA->modelB->myVar = true;
>
> > > > in this action I have a requestAction
(for testing purposes) calling
> > > > action B
> > > >
$this->requestAction('/controllerA/actionB');
>
> > > > if I 'pr' the
$this->modelA->modelB->myVar it returns true when
I
> > > > would expect it to return false since I
would expect the instance of
> > > > the model to be a new one (since a new
action is called).
>
> > > > The behaviour works as expected if I do
the same on the main model.
>
> > > > It is like the instance of the
associated model is the same for both
> > > > actions.
>
> > > > I don't know if I'm being clear but can
anyone help on this ?
>
> > > > thanks in advance.
>
> > > > thomas


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the
Google Groups "Cake PHP" group.
To post to this group, send email to cake-phpgooglegroups.com
To unsubscribe from this group, send email to
cake-php-unsubscribegooglegroups.com
For more options, visit this group at http://
groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---


[1]

about | contact  Other archives ( Real Estate discussion Medical topics )