Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cakephp:如何添加其他查询_Php_Mysql_Cakephp - Fatal编程技术网

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问你吗?你好,阿里莉亚,尤里卡!:)无需在控制器中插入线路。只有公共虚拟领域。非常感谢:)