CakePHP - SQL日志显示一个返回行的工作查询,但结果变量是否为NULL?

时间:2011-08-26 14:37:47

标签: cakephp cakephp-1.3

所以,这是我的控制器代码:

public function admin_index(){
    $clients = $this->paginate();
    $this->set(compact('clients'));
}

这是我的SQL转储中针对此页面的相关查询:

SELECT `Client`.`id`, `Client`.`user_id`, `Client`.`first_name`, `Client`.`last_name`, `Client`.`company`, `Client`.`phone`, `Client`.`created`, `Client`.`modified`, (IF(LENGTH(company) > 0,company,CONCAT(first_name," ",last_name))) AS `Client__name` FROM `clients` AS `Client` WHERE 1 = 1 LIMIT 20  

此查询返回1行(在 Num行下,显示1,只是为了清楚:)。

在视图(或控制器)中,var_dump($ clients)给出NULL

我无法理解为什么会这样!

2 个答案:

答案 0 :(得分:0)

在控制器中更改:

$this->set(compact('clients'));

代表

$this->set('clients', compact('clients'));

因为如果视图中的变量没有名称,那么你就无法访问它。

答案 1 :(得分:0)

嗯,我觉得有点笨蛋......

违规代码实际上在模型文件client.php。

public function afterFind(){
    //todo
}

我打算在这里编写一些代码,但忽略了。 afterFind需要返回一组结果。我没有这样做,因此所有对Client :: find的调用(即通过ClientsController :: paginate)都返回NULL,甚至不是空数组。