As a general rule, it should not matter where it came from (form vs. url). If you have a specific use case you *must* know, then you'd just have to check the specific scope. But such a use case is quite abnormal.
As for what happens, the form scope takes precedence over the url scope. So, in the scenario you presented, the url.uuid would simply be ignored. (There might be a setting to reverse that, but I'm not sure off the top of my head.) On Wed, Jun 22, 2011 at 3:53 PM, Brett Herford-Fell <[email protected]>wrote: > Thanks guys, > > With the form / url variables in the event scope, does it identify which > are which? > > E.g if I want to loop through all the variables that are form variables in > the event scope, can I do that? > > Also, if there url has "uuid", and the form has "uuid", what happens here? > > Many thanks, > > b > > > On Thu, Jun 23, 2011 at 12:22 AM, Dan Wilson <[email protected]> wrote: > >> Ok >> >> I added the following two FAQ articles: >> >> >> - >> >> http://docs.model-glue.com/wiki/FAQs/WhyAreControllerVariablesBeingIncorrectlySharedAcrossUserRequests >> - >> >> http://docs.model-glue.com/wiki/FAQs/DoINeedToUseCFParamForFormAndURLVariables >> >> >> As this is a public wiki, anyone on the list is free to clarify statements >> or add sections they feel would help others. >> >> >> DW >> >> >> >> On Wed, Jun 22, 2011 at 9:37 AM, Dan Skaggs >> <[email protected]>wrote: >> >>> Sure...glad to help. >>> >>> Dan >>> >>> On Jun 22, 2011, at 8:30 AM, Dan Wilson wrote: >>> >>> Hey Dan, >>> >>> That's a great explanation. Do you mind if I add some of your post to the >>> FAQ section on the Wiki? >>> >>> >>> DW >>> >>> On Tue, Jun 21, 2011 at 9:29 PM, Dan Skaggs >>> <[email protected]>wrote: >>> >>>> Couple of things here: >>>> >>>> 1) Passing your entire populated model object to the view (via the >>>> ModelGlue event object) is perfectly fine. There's no reason to break out >>>> all the object's properties into separate values in the event. >>>> >>>> 2) ModelGlue controllers are created once on application init (or when >>>> you manually reinit the app) and cached. Therefore, yes, the controller >>>> objects are in effect singletons for the application. >>>> >>>> 3) Instead of doing <cfset variables.item ...>, you should do <cfset var >>>> item = createObject(.....) />. Using variables.item actually would set the >>>> object into the global memory space for the controller component (which >>>> would be bad as that value is then cached as part of the controller >>>> singleton--see #2). Using the "var" keyword on a variable inside a function >>>> body ensures that the variable only exists for that execution of the >>>> function (therefore it can't be stored and bleed over into other requests >>>> that execute that same function). The variable is discarded after the >>>> function completes executing. >>>> >>>> 4) Using the var keyword has nothing to do with the user session--they >>>> are 2 completely different ideas. >>>> >>>> 5) There's no need to cfparam the url.uuid. ModelGlue automatically puts >>>> all URL and form variables into the event object for you to make it easy >>>> for >>>> you to find them. You just need to get the value out of the event when you >>>> need it (see below). Should uuid not exist in the event, ModelGlue will >>>> return you an empty string. You can optionally set a default value to use >>>> in >>>> case the variable doesn't exist in the event (see >>>> http://docs.model-glue.com/wiki/ReferenceMaterials/EventApi#GetValuename:stringdefault:anyfor >>>> more information). >>>> >>>> Try updating your controller component as such: >>>> >>>> <cfcomponent output="false" >>>> extends="ModelGlue.gesture.controller.Controller"> >>>> >>>> <cffunction name="view" access="public"> >>>> <cfargument name="event" /> >>>> >>>> <cfset var uuid = arguments.event.getValue( "uuid" ) /> >>>> <cfset var item = CreateObject("component", "model.item") /> >>>> <cfset var status = "" /> >>>> >>>> <cfinvoke component="#item#" >>>> method = "get" >>>> returnvariable = "status" >>>> uuid = "#uuid#" >>>> > >>>> >>>> <cfset arguments.event.setValue("item", item) /> >>>> >>>> </cffunction> >>>> </cfcomponent> >>>> >>>> Additionally, while there's nothing wrong technically with using a >>>> <cfinvoke> there, you could shorten that up like so: >>>> >>>> <cffunction name="view" access="public"> >>>> <cfargument name="event" /> >>>> >>>> <cfset var item = CreateObject("component", "model.item") /> >>>> >>>> <cfset item.get( uuid = arguments.event.getValue( "uuid" ) ) /> >>>> >>>> <cfset arguments.event.setValue("item", item) /> >>>> >>>> </cffunction> >>>> </cfcomponent> >>>> >>>> Hope that helps clarify things a bit. If there's something you don't >>>> understand, be sure to ping us back. >>>> >>>> Dan >>>> >>>> On Jun 21, 2011, at 8:09 PM, Brettski wrote: >>>> >>>> > And should I scope like >>>> > >>>> > <cfset Variables.item = CreateObject("component", "model.item")> >>>> > .. >>>> > <cfset arguments.event.setValue("item", Variables.myItem) /> >>>> > >>>> > >>>> > On Jun 22, 11:01 am, Brettski <[email protected]> wrote: >>>> >> the model bits and pieces are all used in the view, am I thinking >>>> >> wrong to pass all this back to view? What else should I pass back a >>>> >> struct or something? >>>> >> >>>> >> My vars aren't scoped, so does this mean there is one controller >>>> >> "instance / singleton" for the app, and if I don't scope them they >>>> can >>>> >> bleed? I think that's if I scope all vars they will stay in user >>>> >> session? >>>> >> >>>> >> On Jun 22, 9:55 am, Roy Martin <[email protected]> wrote: >>>> >> >>>> >> >>>> >> >>>> >> >>>> >> >>>> >> >>>> >> >>>> >>> Off the cuff, you haven't var scoped your 'item' variable or your >>>> return >>>> >>> variable 'status'. So those variable will be subject to variable >>>> bleed under >>>> >>> load. As an additional point of feedback, passing the entire model >>>> back to >>>> >>> the view isn't best practice. It would be better if you had passed >>>> just the >>>> >>> return variable back to the model. Unless that's a typo? >>>> >> >>>> >>> Thanks, >>>> >>> Roy >>>> > >>>> > -- >>>> > Model-Glue Sites: >>>> > Home Page: http://www.model-glue.com >>>> > Documentation: http://docs.model-glue.com >>>> > Bug Tracker: http://bugs.model-glue.com >>>> > Blog: http://www.model-glue.com/blog >>>> > >>>> > You received this message because you are subscribed to the Google >>>> > Groups "model-glue" 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/model-glue?hl=en >>>> >>>> -- >>>> Model-Glue Sites: >>>> Home Page: http://www.model-glue.com >>>> Documentation: http://docs.model-glue.com >>>> Bug Tracker: http://bugs.model-glue.com >>>> Blog: http://www.model-glue.com/blog >>>> >>>> You received this message because you are subscribed to the Google >>>> Groups "model-glue" 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/model-glue?hl=en >>>> >>> >>> >>> >>> -- >>> Plutarch - "The mind is not a vessel to be filled but a fire to be >>> kindled." >>> >>> -- >>> Model-Glue Sites: >>> Home Page: http://www.model-glue.com >>> Documentation: http://docs.model-glue.com >>> Bug Tracker: http://bugs.model-glue.com >>> Blog: http://www.model-glue.com/blog >>> >>> You received this message because you are subscribed to the Google >>> Groups "model-glue" 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/model-glue?hl=en >>> >>> >>> -- >>> Model-Glue Sites: >>> Home Page: http://www.model-glue.com >>> Documentation: http://docs.model-glue.com >>> Bug Tracker: http://bugs.model-glue.com >>> Blog: http://www.model-glue.com/blog >>> >>> You received this message because you are subscribed to the Google >>> Groups "model-glue" 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/model-glue?hl=en >>> >> >> >> >> -- >> Plutarch - "The mind is not a vessel to be filled but a fire to be >> kindled." >> >> -- >> Model-Glue Sites: >> Home Page: http://www.model-glue.com >> Documentation: http://docs.model-glue.com >> Bug Tracker: http://bugs.model-glue.com >> Blog: http://www.model-glue.com/blog >> >> You received this message because you are subscribed to the Google >> Groups "model-glue" 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/model-glue?hl=en >> > > -- > Model-Glue Sites: > Home Page: http://www.model-glue.com > Documentation: http://docs.model-glue.com > Bug Tracker: http://bugs.model-glue.com > Blog: http://www.model-glue.com/blog > > You received this message because you are subscribed to the Google > Groups "model-glue" 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/model-glue?hl=en > -- Model-Glue Sites: Home Page: http://www.model-glue.com Documentation: http://docs.model-glue.com Bug Tracker: http://bugs.model-glue.com Blog: http://www.model-glue.com/blog You received this message because you are subscribed to the Google Groups "model-glue" 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/model-glue?hl=en
