Teddy,
And there in lies my problem, I think. From what I understand, the
gateway works on a table. When I use that method, I do not get direct
access to the data in the other table that has the "hasOne"
relationship. Right now I have to write a separate query that joins the
two tables, use createGateway() on that query, then cfoutput as normal.
My thought originally when I come across this thread was that if you do
a createGateway, then a getAll() and the table has a "hasOne"
relationship with other tables, shouldn't you be able to access the
related table data without having to write a separate query? If I have
to write a separate query, so be it. I was looking for a more efficient
way to display a listing of data from 2 related tables.
Thanks for you patience on this.
Byron
Teddy Payne wrote:
Byron,
Displaying all staff records would be a gateway.
<cfset Reactor =
CreateObject("Component","reactor.reactorFactory").init(expandPath("reactor.xml
")) />
<cfset staffGateway = reactor.createGateway("staff") />
<cfset qryStaff = staffGateway.getAll()>
qryStaff returns a query object, so you can use cfoutput or cfloop if
you like.
I recommend reading http://livedocs.reactorframework.com/
This is covered in the "Reactor Crash Course" portion of the left
navigation.
On 7/24/06, *Byron Raines * <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
Thanks, Teddy. That's really helpful. Esp. the info on isDirty
(hadn't
got that far). Now to take this further. To display all staff in the
table, would I need to <cfloop> over all the records? Is this the
most
efficient way? or is there another way?
Thanks again.
byron
Teddy Payne wrote:
> Byron,
> As promised, here is the reactor snippet. The reactor.xml was
located
> in my webroot in a folder called sample. I created a mapping to
> sample/data folder to store the generated reactor objects.
>
> I also included a basic logic to detect if you have found an address
> for a given staffer.
>
> Reactor.xml:
> <reactor>
> <config>
> <project value="sample" />
> <dsn value="reactor" />
> <type value="mssql" />
> <mapping value="/sampleData" />
> <mode value="development" />
> </config>
>
> <objects>
>
> <object name="Staff">
> <hasOne name="Address">
> <relate from="staffID" to="staffID" />
> </hasOne>
> </object>
>
> </objects>
>
> </reactor>
>
> ColdFusion Code:
> <!--- load the reactor factory --->
> <cfset Reactor = CreateObject("Component",
> "reactor.reactorFactory").init(expandPath("reactor.xml ")) />
>
> <!--- get the staffer record for the staff person with the primary
> key on the staff table of 1 --->
> <cfset staffRecord =
reactor.createRecord("staff").load(staffID=1) />
>
> <!--- get the address record for the staffer record loaded--->
> <cfset staffAddressRecord = staffRecord.getAddress() />
>
> <!--- the isDirty method of the staffer's address link will tell you
> if an address record was found or not for the staffer --->
> <cfset badRead = staffAddressRecord.isDirty()>
>
> <cfoutput>
> <!--- display the staffer's name from the staff table' --->
> #staffRecord.getStafferName()#<br />
>
> <!--- if it was not a bad read of the address table for the staffer,
> display the address and state --->
> <cfif not badRead>
> <!--- get the address of the staffer from the address table
--->
> #staffAddressRecord.getAddress_One()#<br />
> <!--- get the state of the staffer from the address table --->
> #staffAddressRecord.getState()#<br />
> </cfif>
>
> </cfoutput>
>
> --
> <cf_payne />
> http://cfpayne.wordpress.com/
> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- --
> -- -- -- --
> Reactor for ColdFusion Mailing List
> [email protected] <mailto:[email protected]>
> Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> -- -- -- --
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- -- -- -- --
Reactor for ColdFusion Mailing List
[email protected] <mailto:[email protected]>
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
<http://www.mail-archive.com/reactor%40doughughes.net/>
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- -- -- -- --
--
<cf_payne />
http://cfpayne.wordpress.com/ <http://cfpayne.wordpress.com/>
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- -- -- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- -- -- --
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --