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 &raquo;</a>
> >                     </td>
> >                     <td>
> >                       <?php echo link_to('drop <span class="ui-icon ui-
> > icon-trash">&nbsp;</span>', sprintf('@adddrop_student_action?
> > do=drop&section_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

Reply via email to