2012-06-17 128 views
0

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

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

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

+0

我把我的控制器在那里设置你的控制器上的变量$时间表,你能发现我将它放在哪里吗?我想我有点'已经有了。 –

+0

哦,我看到... PHP变量是区分大小写的...你正在设置Timesheets并试图使用时间表 – pollirrata

+0

所以他们应该都是大写或小写? –