$ this->发现不能在cakePHP中工作

时间:2011-09-01 19:19:00

标签: cakephp

我有一个名为Deal class Deal extends AppModel

的模型

现在在我的控制器中,我在Deal模型中调用了一个名为getDeal()

的方法

$ dealInfo = Deal :: getDeal($ dealID);

我希望信息返回给我,但var_dump显示空白

function getDeal($dealID){

    $deal = $this->Deal->find('first', array(
                            'conditions' => 
                                'Deal.id' =>$dealID

                            ) ,
                            'fields' => array(
                                'Deal.id'
                            ) ,

                            'recursive' => 1,

                            ));
}

这是我第一次在cakePHP工作,所以这个问题可能听起来有点愚蠢

3 个答案:

答案 0 :(得分:2)

当您使用id作为查找条件时,可以使用CakePHP的动态查找器方法。

动态查找器就像这样工作。

$this->Model->findByModelFieldName();

在你的例子中,它将是

$this->findById($dealId, array(
    'fields' => array('Deal.id'),
    'recursive' => 1
));

答案 1 :(得分:1)

我不知道我是不是只是精神上,但这只是因为你没有从getDeal()返回任何东西?

尝试添加return $deal;,看看是否有帮助。你的问题没有准确说明你在var_dump的确切位置,所以我可能会很幸福。

修改

根据与您和8vius的讨论,我们已经确定这不对,您只需将$this->Deal->find()更改为$this->find(),因为它是从模型运行的。

答案 2 :(得分:0)

检查您的函数声明,$deal_id不存在,您可以从传递给我应该$deal_id而不是dealID的函数的参数中看到。所以你有一个误报的函数,用一个不存在的变量调用find。