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
