CAKEPHP:过滤器问题

时间:2012-06-17 00:21:36

标签: cakephp filter

我正在尝试将过滤器应用于员工,以便在时间表表格中显示它们。如果需要其他代码来帮助我,我会开始发布它。代码是filter.ctp

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

问题: 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));
        }


}
?>

1 个答案:

答案 0 :(得分:1)

您可能需要使用$this->set('timesheets', $timesheets)

在控制器上设置变量$ timesheets