根据CakePHP中的条件从两个表中获取数据
我有两个控制器LeaveApplicationController和EmployeesController。在LeaveApplicationsController索引操作中,我显示所有员工的休假记录。它显示良好,但我需要的是只显示登录员工离开该员工。我在休假申请表中将员工id作为外键。但我没有从employees表中获取employees_id。我还有一个users表,每个用户都有一个与之关联的员工。所以,当创建员工时,在创建该用户之前,新创建的用户id也存储在员工表中unser_id字段下。因此,user_id是employees表中的外键,并唯一标识员工 这是我的LeaveApplicationController.php代码:-根据CakePHP中的条件从两个表中获取数据,php,cakephp,Php,Cakephp,我有两个控制器LeaveApplicationController和EmployeesController。在LeaveApplicationsController索引操作中,我显示所有员工的休假记录。它显示良好,但我需要的是只显示登录员工离开该员工。我在休假申请表中将员工id作为外键。但我没有从employees表中获取employees_id。我还有一个users表,每个用户都有一个与之关联的员工。所以,当创建员工时,在创建该用户之前,新创建的用户id也存储在员工表中unser_id字段下。
public function index()
{
$userId = $this->Auth->user('id'); //gets current user's id
$this->LeaveApplication->recursive = 0;
$leavereqs = $this->set('leaveApplications', $this->Paginator->paginate());
$employeeId = $this->Employee->find('all', array('fields'=>array('id'), 'conditions'=>array('Employee.user_id'=>$userId))); // code for getting emp id
return $this->LeaveApplication->find('all', array('conditions'=>array('LeaveApplication.employee_id'=>$employeeId))); //code for fetching current employee record
}
但这表明了错误。请告诉我我在哪里做的不对?我还使用$uses在LeaveApplicationsController中加载员工模型。谢谢
public function index()
{
$userId = $this->Auth->user('id'); //gets current user's id
$this->LeaveApplication->recursive = 0;
$leavereqs = $this->set('leaveApplications', $this->Paginator->paginate());
$employeeId = $this->Employee->find('list', array('fields'=>array('id'), 'conditions'=>array('Employee.user_id'=>$userId))); // code for getting emp id
return $this->LeaveApplication->find('all', array('conditions'=>array('LeaveApplication.employee_id'=>$employeeId))); //code for fetching current employee record
}
find'all'将返回带有索引Employee和id的数组
Imp链接:查找“全部”、查找“第一个”和查找“列表”
谢谢你的回答,但它仍然显示错误的回声$employeeId实际上只包含一个整数。不可能$employeeId是一个id数组,请使用print_r$employeeIdAnubhav yes打印员工id,该id现在为29,但仍保留所有员工的记录,而不是id为29的员工的记录。我上一次的退货查询对吗?或者我想我需要更改这行$leavereqs=$this->set'leaveApplications',$this->Paginator->paginate;更新您的问题,显示此特定操作中的代码。你们的最后一个问题是绝对正确的,但我不确定返回的东西,我的意思是你们想做什么?谢谢。我想出来了。