I also ran into this issue recently, exactly how you describe. I didn't find a "real" solution to it, and instead isolated each query and corresponding view into its own component.
On Sep 2, 12:14 am, Guill Lo <[email protected]> wrote: > Hi there! > > Still haven't found the solution, I'm skipping this and will find > another way to do it. But I think it's a Doctrine bug, mixing the > collection of datas behind the scenes. Hope this post might help feel > not so lonely if you encounter this kind of issue. > > On Aug 13, 9:21 pm, Guill Lo <[email protected]> wrote: > > > > > Hi there, > > > I've got something really strange that never happened to me before. > > > I have 2 different queries querying on the same tables. One table is > > called 'Module' and the other one 'Section'. A module can have several > > sections and a section can belongs to several modules. Therefore, in > > my templates, I call module->getSections(). This is where the problem > > is. > > ************** > > In my actions.class.php I have: > > ************** > > > $this->modules_in = Doctrine_Query::create() > > ->from('Module m') > > ->innerJoin('m.Sections s') > > ->innerJoin('s.SectionUser su') > > ->innerJoin('m.Program p') > > ->where('p.id = ? AND su.user_id = ?', > > array($request->getParameter('program_id'), $user->getId())) > > > ->execute(); > > > $this->modules_not_in = Doctrine_Query::create() > > ->from('Module m') > > ->innerJoin('m.Sections s') > > ->innerJoin('m.Program p') > > ->where('p.id = ?', array($request->getParameter('program_id'))) > > ->execute(); > > > (I know that the 2nd query is not correct but I made it simpler just > > to try to find where the bug is) > > > ************** > > in my template I have: > > ************** > > > <div id="ad_sections_in"> > > <h3>List of sections you are enrolled in:</h3> > > <?php if (!count($modules_in)):?> > > <p class="notice">You are not yet enrolled in any section that is > > currently running or upcoming for this program.</p> > > <?php else:?> > > <p class="note">Here is the list of your sections that are > > currently running or upcoming. You can request to drop some of them. > > Be aware that some are > > mandatory.</p> > > <table class=""> > > <tbody> > > <?php foreach($modules_in as $module_in) : ?> > > <tr class="ui-widget-content"> > > <td> > > <h4 class="ac"><?php echo sprintf('%s - %s', > > $module_in['code'], $module_in['name']) ?></h4> > > <table class="list"> > > <tbody> > > <?php foreach($module_in->getSections() as > > $section) : ?> > > <tr> > > <td> > > <?php echo sprintf('%s - %s - %s', > > $section['code'], $section['name'], $section['section']) ?> > > <a href="<?php echo url_for('@section_info? > > code='.$section['code'])?>" id="<?php echo $section['code']?>" > > class="view-in-box note alt">view details »</a> > > </td> > > <td> > > <?php echo link_to('drop <span class="ui-icon ui- > > icon-trash"> </span>', sprintf('@adddrop_student_action? > > do=drop§ion_id=%s', $section['id']),'class=fg-button-mini fg- > > button ui-state-default fg-button-icon-left comment') ?> > > </td> > > </tr> > > <?php endforeach ?> > > </tbody> > > </table> > > </td> > > </tr> > > <?php endforeach ?> > > </tbody> > > </table> > > <?php endif;?> > > </div> > > > The problem is that my $module_in->getSections() doesn't return me the > > results according to the 1st query, but according to the 2nd, and I > > have no idea why. If I comment the 2nd query in my actions.class.php, > > the results are correct, according to the 1st query. If I change the > > order of the queries in the actions.class.php the opposite happens: in > > my template the $modules_not_in->getSections() will return the results > > according to the other query. > > > Actually I've found that the results are always according to the last > > query of my actions.class.php instead of being related to the correct > > query. > > > Do I miss an option somewhere or there is something that I > > misunderstood?? > > > Thanks for the help. -- If you want to report a vulnerability issue on symfony, please send it to security at symfony-project.com 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
