I think you can define a model level filter, it will help you to solve this
problem thoroughly. Just an idea of mine. Maybe you can put the filter
engine in AppModel.[Client] ----> {Filter engine} ----> [Server]
[Client] <--- {Filter engine} <---- [Server]

For a temporary solution, I think the loop is enough:
Assume the return result something like this:

[0] => Array
       (
           [Bookmark] => Array
               (
                   [id] => 38b7276f708
                   [user_id] => 4a5d569f-b9e8-416d-b34c-11cf4adcd75b
                   [post_id] => 11e7ee
                   [created] => 2009-08-09 21:59:01
               )

           [Post] => Array
               (
                   [title] => Test Title
                   [rank] => 2
                   [created] =>
                   [description] => Test dscription
                   [id] => 52louj

               )

       )
[1] => Array
       (
           [Bookmark] => Array
               (
                   [id] => 38b7276f708
                   [user_id] => 4a5d569f-b9e8-416d-b34c-11cf4adcd75b
                   [post_id] => 11e7ee
                   [created] => 2009-08-09 21:59:01
               )

           [Post] => Array
               (
                   [title] =>
                   [rank] =>
                   [created] =>
                   [description] =>
                   [id] =>

               )

       )


[CODE]
foreach ($bookmarks as $key => $value) {
     if (empty($value['Post']['id'])) {
      unset($bookmarks[$key]['Post']);
     }
}
[/CODE]
On Tue, Aug 11, 2009 at 11:19 AM, Dave Maharaj :: WidePixels.com <
[email protected]> wrote:

>  The thing is the Post info is there in the database
>
> Scenario:
> The Post article has access level of 1
> User that has an access level of 1 can see the Post and bookmark it. No
> problem
>
> Later the owner of the Post changes the access level to 3....the user with
> level 1 access can no loger see that Post because his access level is too
> low, but his Bookmark for that Post still exists. But because the contain
> will pull all bookmarks that belongto the user andgetthe Posts where $access
> = 'Post.access' that info is no longer goingto get pulled, thats why it
> appears blank.
>
> So I need to completely remove that bookmark from the array.
>
> Trying something like:
>
> foreach ($bookmark as $key => $value) {
>      if (empty($value)) {
>       unset($q[$key]);
>
> but cant get it to work...still messing around with it
>
>  ------------------------------
> *From:* joshua [mailto:[email protected]]
> *Sent:* August-11-09 12:41 AM
> *To:* [email protected]
> *Subject:* Re: Array help
>
> 1. Use a callback function afterFind to loop the return array, remove the
> empty item. 2. How about give a condition when model->find.
> [CODE]
> 'conditions' => array(("*not*" => array ( "Post.id" => *null* )), //array
> of conditions
> [/CODE]
> On Tue, Aug 11, 2009 at 10:25 AM, Dave Maharaj :: WidePixels.com <
> [email protected]> wrote:
>
>>
>> I have a contain query which produces these results.
>>
>> Basically the user bookmarked a page when they had access. The Owner of
>> the
>> post has changed the level of who can view the Post so in this case this
>> user no longer can view the post hence the missing post data. It was not
>> grabbed because the conditions of the Post did not match the users access
>> level.
>>
>> But the bookmark still exists. Now in the query it pulls all bookmarks for
>> the user and the post related to the bookmark. How can I remove [1] from
>> the
>> array all together or all from the array if [Post] has no data? I can not
>> delete the bookmark when Posts change the access level because they may
>> change it back to a lower setting and allow those who did have it
>> bookmarked
>> to once again have access. I just need to remove the array entry(s) where
>> the  Post array is empty.
>>
>> [0] => Array
>>        (
>>            [Bookmark] => Array
>>                (
>>                    [id] => 38b7276f708
>>                    [user_id] => 4a5d569f-b9e8-416d-b34c-11cf4adcd75b
>>                    [post_id] => 11e7ee
>>                    [created] => 2009-08-09 21:59:01
>>                )
>>
>>            [Post] => Array
>>                (
>>                    [title] => Test Title
>>                    [rank] => 2
>>                    [created] =>
>>                    [description] => Test dscription
>>                    [id] => 52louj
>>
>>                )
>>
>>        )
>> [1] => Array
>>        (
>>            [Bookmark] => Array
>>                (
>>                    [id] => 38b7276f708
>>                    [user_id] => 4a5d569f-b9e8-416d-b34c-11cf4adcd75b
>>                    [post_id] => 11e7ee
>>                    [created] => 2009-08-09 21:59:01
>>                )
>>
>>            [Post] => Array
>>                (
>>                    [title] =>
>>                    [rank] =>
>>                    [created] =>
>>                    [description] =>
>>                    [id] =>
>>
>>                )
>>
>>        )
>>
>> Thanks,
>>
>> Dave
>>
>>
>>
>>
>
>
> --
> Thanks
> Joshua
> 5span.com <https://www.5span.com>
> >
>


-- 
Thanks
Joshua
5span.com <https://www.5span.com>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" 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/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to