[Rt-devel] [Searchbuilder] how to access fields from both joined tables in a SearchBuilder object
Mathieu Lafage
mathieu.lafage at anevia.com
Mon Oct 4 11:33:57 EDT 2010
Dear all,
I believe I reached the correct place for a question about
DBIx::SearchBuilder,
otherwise please forgive my noise.
I read the module documentation, the "RT Essential" book, I crawled this ML
archives, as well as google, and I gave a look at RT source code,
however I admit
I did not dive very deep in Tickets.pm generic query code, but I did not
find
a clear answer to this question :
Can you access fields from both joined tables in your result set
when you join two tables with Searchbuilder ?
From my understanding and tests, this is not possible, or not obviously.
You SearchBuilder-derived class is connected to one table (through
$self->Table('mytable'); ) and you thus return records of a
SearchBuilder::Record
type linked to this base table.
Should I :
- forget using SearchBuilder for this purpose, it can not do it. period,
- create a proper view in my database, and create a SearchBuilder object
accordingly,
thus working around the SearchBuilder "limitation" described here,
- go back to "Modeling 101" and learn why what I want to do is bad.
Please, teach me.
- use the splendid solution you will certainly describe here. :)
NB: I thought about the two following solutions, but I want to know if
there is
a better (more general) way :
1) I may define my tables so I don't need to perform a Join in the first
place to
get related informations, but I'm afraid normalization might suffer
outrages here.
2) Alternately, I may access my two tables separately (with a
SearchBuilder object
each) and "join" in the perl code, but I'm afraid I will call this a kludge.
Best regards,
Mathieu
More information about the rt-devel
mailing list