Reputation: 569
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
Reputation: 5286
You may need to set the variable $timesheets on your controller using $this->set('timesheets', $timesheets)
Upvotes: 1