These problems usually occur when you are loading partial relations
from the database, and later on assume that the relation was loaded
completely (Doctrine has no way to tell whether an object's relation
was loaded partially or completely).

Try refreshRelated() to re-load the specific relation from the
database, or load the entire relation in the first place.

Kind regards,
Johannes


On 2 Sep., 07:14, 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