Got what i'm looking for, afterFind function which is run via the
model.

                function afterFind($results){
                        foreach($results as $key => $val){
                                if(array_key_exists('Improvement', $val)){
                                        $results[$key]['Improvement']['status'] 
= $this->getStatus
($results[$key]['Improvement']['status']);
                                }
                        }
                        return $results;
                }

Works perfect and updates my array, will have great use for this,
formatting my results.  Going to use tinyint values in database now
and give text for each status.  I'll then use the status for css and
field status.  Still have a slight problem in that the array does not
have index values so i'm receiving notices, but i will post a new
message.

Ross

On Apr 1, 9:33 pm, rossjha <[email protected]> wrote:
> Thanks for getting back to me, just getting to grips witth MVC, so i
> wasn't sure adding logic in the view would be the best thing.  Thanks
> a lot
>
> Ross
>
> PS i will be using css classes, just a quickie function for demo
>
> On Apr 1, 6:36 pm, Jimmy Bourassa <[email protected]> wrote:
>
> > Your color really should be a CSS class. Since you only need the color
> > in your views, I'd put that bit of logic in a view, where it truly
> > belongs.
>
> > You could just extend your app view with your getStatusColour function
> > and call this function in whatever kind of loop you'll use in your
> > views.
>
> > I hope it could help,
>
> > Jimmy
>
> > On 1 avr, 12:18, "[email protected]"
>
> > <[email protected]> wrote:
> > > Hi
>
> > > I have a number of posts which can be one of 3 states, pending,
> > > approved, declined.  I want to add some colour to my view when
> > > displaying all the posts and i'm not sure how to do it.  I have an
> > > $improvement array and a getStatusColor function in the
> > > app_controller.  How can i read each item in the array, in my
> > > controller and then add the status colour for the view?
>
> > > Any help would be appreciated.
>
> > > improvements_controller.php
>
> > >         function index() {
> > >                 $user_id = $this->Auth->user('id');
> > >                 $conditions = array(
> > >                         'conditions' => array('Improvement.user_id' =>
> > > $user_id),
> > >                         'fields' => array('Improvement.id',
> > > 'Improvement.user_id',
> > > 'Improvement.title', 'Improvement.description', 'Improvement.status',
> > > 'Improvement.created')
> > >                 );
> > >                 $this->set('user_improvements', 
> > > $this->Improvement->find('all',
>
> > > $conditions));
> > >         }
>
> > > app_controller.php
>
> > >         function getStatusColour($improvement){
> > >                 switch ($improvement) {
> > >                         case 'Pending':
> > >                                 $improvement = 'yellow';
> > >                                 break;
> > >                         case 'Approved':
> > >                                 $improvement = 'green';
> > >                                 break;
> > >                         case 'Declined':
> > >                                 $improvement = 'red';
> > >                                 break;
> > >                 }
> > >                 return $improvement;
> > >         }
--~--~---------~--~----~------------~-------~--~----~
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