首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cakephp查找操作未知字段错误

Cakephp查找操作未知字段错误
EN

Stack Overflow用户
提问于 2014-04-15 00:15:36
回答 2查看 56关注 0票数 0

我有两张桌子

一张囚桌和一张典狱桌。一座监狱可以安排多名监管员为监狱工作。典狱长记录有开始日期和结束日期字段,这是他们将为监狱工作的时间范围。

我已经建立了一个协会,它是监狱hasMany典狱长。典狱表有一个外键字段prison_id。

如果我执行$this->Warden->find('all');

我会得到所有的监狱,以及他们过去和将来的监狱长。

我只想让监狱长在特定的日期为监狱工作。

我正在尝试做一些像这样的事情

代码语言:javascript
复制
    $searchfilter = array(
                        'Warden.startdate <=' => $date,
                        'Warden.enddate   >=' => $date,
                        );        

    return $this->Prison->find('all', array('conditions' => $searchfilter));

但这会导致未知场错误。

EN

回答 2

Stack Overflow用户

发布于 2014-04-15 00:29:45

你的发现是在Prison模型上,但你的条件是在Warden模型上,这就是为什么它会给出未知字段错误的原因。如果您只需执行以下操作,该查询将会起作用:

代码语言:javascript
复制
return $this->Prison->Warden->find('all', array('conditions' => $searchfilter));

如果你想要一个特定的监狱,如果你知道它的id,你可以简单地添加到你的$searchFilter

代码语言:javascript
复制
'Warden.prison_id' => $id
票数 1
EN

Stack Overflow用户

发布于 2014-04-15 03:10:38

问题是你是在盲目地尝试...Warden.prison_id不在您的监狱表中..为了简单起见,使用可包含的行为...

Prison.php

代码语言:javascript
复制
class Prison extends AppModel{
    public $hasMany = array('Warden');

    public $actsAs = array('Containable');// adding behaviors to model

    public function getPrison(){
        $searchfilter = array(
                            'Warden.startdate <=' => $date,
                            'Warden.enddate   >=' => $date,
                            );

        $data = $this->find('all', array(
                                    'contain' => array(
                                        'Warden' => array(
                                            'conditions' => $searchfilter
                                        )
                                    )
        ));

        return $data;

    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23065041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档