2013-10-29 46 views
0

我有一个模型,控制器和员工的看法。 每个员工都有:id, name, dateofjoin, dateofbirth, religion, addresscakephp:如何添加其他查询

employee/index - >我列出了所有员工,但只列出了一些字段(id和名称)。在右侧,我有按钮“查看”来查看细节。

当我点击“查看”按钮,它会告诉我所有字段的细节:ID,姓名,dateofjoin,出生日期,宗教,地址等

我想的是:我需要把其他信息如下: - 这个人多少年来一直为我们工作? - 他多大了?

别担心,我有查询来做到这一点。但我不知道在哪里查询。

纯查询,我有:

SELECT DATEDIFF(NOW(),'dateofjoin') 

SELECT DATEDIFF(NOW(),'dateofbirth') 

二人会告诉我答案,但再一次,在那里和我一定如何把查询?

+0

首先,我怀疑你的查询将工作,你必须删除dateofjoin和dateofbirth附近的引号,这些是表名,而不是字符串。你的控制器是怎样的? – davey

+0

嗨达维,是的,我知道它不会工作。我知道我的dateofjoin/birth应该是'1998-12-12'。这不是问题。我明白。我的问题是如何把查询?我应该把它们放在控制器/模型上吗?我的控制器仍然是标准控制器,没有任何变化。 – mazandre

回答

0

你需要使用虚拟领域see manual

在模型

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')); 
+0

让我试试。谢谢反正arilia :) – mazandre

+0

哪里把那些线在控制器arilia?我把它们置于公共功能视图之下?我错了吗 ?错误是:解析错误,在控制器线上。 – mazandre

+0

我编辑,因为我错过了模型名称。你必须把这些行放在你的视图函数中。我假设你已经有了一个'$ this-> Employee-> find(...)'函数调用。你只需要添加字段列表并包含虚拟字段 – arilia

相关问题