Is your find/paginate being executed on the Notification model or the
Policy model? The conditions I provided should be executed on the
Notification model.  Basically, the SQL you want should be something
like:

SELECT <list_of_fields>
FROM `notifications` AS `Notification`
  LEFT JOIN `policies` AS `Policy` ON (`Notification`.`policy_id` =
`Policy`.`id`)
WHERE `Notification`.`user_id` =  <$me>
  AND (`Policy`.`status` = 1 OR `Policy`.`status` IS NULL)

What is the SQL statement being generated by CakePHP?


On Feb 16, 9:07 pm, "Krissy Masters" <[email protected]>
wrote:
> Thanks for that , but as it got me closer to the Policy data it now does not
> pull any Notifications that are external. Still just associated matching
> records.
> Never All Notifications that have a Policy.id based on Policy.status along
> with all Notifications with no Policy.
>
> Using:
>
> 'conditions' => array(
>         'Notification.user_id' => $me,
>         'OR' => array(
>                 'Policy.status' => 0,
>                 'Policy.status IS NULL')),
>
> Thanks
>
>
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On Behalf
>
> Of ShadowCross
> Sent: Thursday, February 17, 2011 1:18 AM
> To: CakePHP
> Subject: Re: Joins Conditions Contain Question
>
> Try:
>
> 'conditions' => array(
>   'OR' => array(
>     'Policy.status' => 1,
>     'Policy.status IS NULL'
>   )
> )
>
> or for MySQL:
>
> 'conditions' => array(
>   'IFNULL(Policy.status, 1)' => 1
> )
>
> On Feb 16, 10:54 am, "Krissy Masters" <[email protected]>
> wrote:
> > Sorry I did not explain the Notifications better.
> > If a Notification is made thru the form (external notification, not
> related
> > to a Policy on the site) then it has no policy_id Simply a record in the
> > table with
> > id so when the JOINS with POLICY happens all the external are
> automatically
> > forgot about since there are no POLICY records of any kind since its
> > external. Nothing to join with.
>
> > EXTERNAL:
> > Id = > 123
> > Policy_id = null
> > Name => sdfsf
> > ...other files
>
> > INTERNAL
> > Id = > 456
> > Policy_id = 856-954-8
> > ..every other field blank since the data is pulled from the policy_id
>
> > Thanks,
>
> > K
>
> > -----Original Message-----
> > From: [email protected] [mailto:[email protected]] On
> Behalf
>
> > Of John Andersen
> > Sent: Wednesday, February 16, 2011 4:23 AM
> > To: CakePHP
> > Subject: Re: Joins Conditions Contain Question
>
> > Would it be possible to assign a status value of "Not applicable" (0)
> > to the B notifications, thus you would be able to use a condition like
> > Policy.status => array(0,1) AND Notification.user_id => $me
>
> > or something similar :)
> > Enjoy,
> >    John
>
> > On 15 Feb., 22:27, "Krissy Masters" <[email protected]>
> > wrote:
> > > This WILL sound complicated.
>
> > > Policy hasMany Notification / Notification belongsTo Policy
>
> > > Now the Notification can be
>
> > > A.       internal (relating to specific content in the site, so the data
> > is
> > > gathered directly , created by logged in user, what page Policy it
> > pertains,
> > > other policy info, notification reason..)
>
> > > B.       external (then the user fills out a form) and this is
> represented
> > > by Notification.local table field bool
>
> > > So now paginate Notifications easy enough until the JOINS condition
> > > Notification.user_id => $me, Policy.status => 1.
>
> > > Since external Notifications have no Policy.status those are not being
> > > pulled obviously. This is where the problem is. I have to keep the
> > > Policy.status for archive / record keeping legal mumbo jumbo so I simply
> > can
> > > not delete a Notification, has to be marked read, fixed, outstanding,
> > > overdue.
>
> > > And all Nofifications must be in 1 page (pagination). I tried making an
> > > ExternalNotification model / controller but then I run into the issues
> of
> > > paginating 2 separate models as 1.
>
> > > If there is a way to find by(  Notification.user_id => $me,
> Policy.status
> > =>
> > > 1) or (Notification.user_id => $me, Policy.status => does not exist?)
>
> > > Some other method suggestion, point me in a general direction.
>
> > > Thanks guys,
>
> > > K
>
> > --
> > Our newest site for the community: CakePHP Video
> Tutorialshttp://tv.cakephp.org
> > Check out the new CakePHP Questions sitehttp://ask.cakephp.organdhelp
> > others with their CakePHP related questions.
>
> > To unsubscribe from this group, send email to
> > [email protected] For more options, visit this group
> athttp://groups.google.com/group/cake-php
>
> --
> Our newest site for the community: CakePHP Video 
> Tutorialshttp://tv.cakephp.org
> Check out the new CakePHP Questions sitehttp://ask.cakephp.organd help
> others with their CakePHP related questions.
>
> To unsubscribe from this group, send email to
> [email protected] For more options, visit this group 
> athttp://groups.google.com/group/cake-php

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
[email protected] For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to