Web Owl
Web Owl

Reputation: 569

CAKEPHP: Problems with filters

I am trying to apply filters to employees to show them just on the timesheet table. If other code is required to help you help me, I'll start posting it out. The code is filter.ctp

http://webdesign4.georgianc.on.ca/~100141468/comp2084/todo/employees

Problem: http://webdesign4.georgianc.on.ca/~100141468/comp2084/todo/timesheets/filter/19

    <table>
<tr>
<th>ID</th><th>name</th><th>Hours</th><th>Employees</th><th>Edit</th>
</tr>

<? foreach($timesheets as $row): ?>
     <tr><td>
<?=$row['Timesheet']['id']?>
</td><td>
<?=$row['Timesheet']['hours']?>
</td><td>
<a href="../../employees/view/<?=$row['employee']['name']?>"><?=$row['employee']['name']?></a>
</td><td>
<a href="edit/<?=$row['Timesheet']['id']?>">Edit</a>
    </td></tr>
<? endforeach; ?>
</table>

<?
class TimesheetsController extends AppController {
    var $name = 'Timesheets';
    var $scaffold;  
    var $helpers = array('Number');

    function add() {

        //check if user loaded form for first time or had already loaded & is now posting
        if ($this->request->is('post')) {

            //save the data to the db
            if ($this->Timesheet->save($this->request->data)) {

                //Build message & add to session
                $this->Session->setFlash('Timesheet has been saved');

                //take user back to the index page
                $this->redirect(array('action'=>'index'));
            }
            //else save did not work
            else {
                $this->Session->setFlash('Unable to add Timesheet');            
            }
        }

        //populate the Employee list
        $this->loadModel('Employee');
        $this->set('Employees',$this->Employee->find('list',array('order'=> array('Employee.name'))));
        $this->set(compact('Employees'));       

        //populate the Employee list
        $this->loadModel('Client');
        $this->set('Clients',$this->Client->find('list',array('order'=> array('Client.name'))));
        $this->set(compact('Clients')); 
    }

        //create function to filter Timesheet list by selected Employee
        function filter($Employee_id) {
            $this->set('Timesheets',$this->Timesheet->findAllByEmployeeId($Employee_id));
        }
            //create function to filter Timesheet list by selected Employee
        function filter2($Client_id) {
            $this->set('Timesheets',$this->Timesheet->findAllByClientId($Client_id));
        }


}
?>

Upvotes: 0

Views: 168

Answers (1)

pollirrata
pollirrata

Reputation: 5286

You may need to set the variable $timesheets on your controller using $this->set('timesheets', $timesheets)

Upvotes: 1

Related Questions