所以,这是我的控制器代码:
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
我无法理解为什么会这样!
答案 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,甚至不是空数组。