cakephp:如何添加其他查询
我有一个模型、控制器和员工视图。 每位员工都有:cakephp:如何添加其他查询,php,mysql,cakephp,Php,Mysql,Cakephp,我有一个模型、控制器和员工视图。 每位员工都有:id、姓名、加入日期、出生日期、宗教信仰、地址等 在employee/index->中,我列出了所有员工,但只列出了一些字段(id和name)。在右边,我有“视图”按钮来查看细节 当我点击“查看”按钮时,它会显示所有字段的详细信息:id、姓名、加入日期、出生日期、宗教、地址等 我想要的是:我需要添加以下附加信息: -这个人为我们工作了多少年? -他多大了 别担心,我有问题要做。但我不知道该把问题放在哪里 在普通查询中,我有: SELECT DATE
id、姓名、加入日期、出生日期、宗教信仰、地址等
在employee/index
->中,我列出了所有员工,但只列出了一些字段(id和name)。在右边,我有“视图”按钮来查看细节
当我点击“查看”按钮时,它会显示所有字段的详细信息:id、姓名、加入日期、出生日期、宗教、地址等
我想要的是:我需要添加以下附加信息:
-这个人为我们工作了多少年?
-他多大了
别担心,我有问题要做。但我不知道该把问题放在哪里
在普通查询中,我有:
SELECT DATEDIFF(NOW(),'dateofjoin')
SELECT DATEDIFF(NOW(),'dateofbirth')
它们两个将向我显示答案,但再一次,我必须在哪里以及如何放置查询?您需要使用虚拟字段
在您的模型中
public $virtualFields = array(
'age' => 'DATEDIFF(NOW(),dateofbirth)',
'working_time' => 'DATEDIFF(NOW(),dateofjoin)'
);
在控制器中
$this->Employee->find('all', array('fields' => array('id', 'name', 'religion', 'age', 'working_time'));
首先,我怀疑您的查询是否有效,您必须删除dateofjoin和dateofbirth周围的引号,这些是表名,而不是字符串。你的控制器看起来怎么样?嗨,戴维,是的,我知道它不工作。我知道我的加入/出生日期应该是“1998-12-12”。这不是问题所在。我理解。我的问题是如何提出这些问题?我应该把它们放在控制器/模型上吗?我的控制器仍然是标准的,没有任何变化。arilia控制器中的线路放在哪里?我把它们放在公共功能视图下?我错了吗?错误是:parse error,就在控制器行上。我进行了编辑,因为我错过了模型名。您必须将这些行放在视图函数中。我假设您已经有了一个$this->Employee->find(…)
函数调用。您只需添加字段列表并包括虚拟字段,我拥有的是模范员工。我已经在里面放了public$virtualFields
。然后我把$this->Employee->find(…)
放在EmployeesController中。但它仍然无法工作。在EmployeesController中有公共函数视图($id=null)
,最后一行是$this->set($employee',$this->employee->read(null,$id))代码>我想我们已经接近了。请接受下一个指示。或者我可以通过skype问你吗?你好,阿里莉亚,尤里卡!:)无需在控制器中插入线路。只有公共虚拟领域。非常感谢:)