//контроллер
public function viewcategorys1() {
$this->loadModel("Category");
$total = $this->Category->find('all', array('fields' =>array('sum(Category.rate) AS ctotal'), 'conditions'=>array('Category.parentid' => 0)));
$this->set('sum',$total);
print_r($total);
}
//Посмотреть
<?php
foreach($sum as $ctotal):
echo $ctotal['Category']['rate'];
endforeach;
?>
в контроллере я написал "print_r", чтобы он отображался как:
Array ( [0] => Array ( [0] => Array ( [ctotal] => 16250 ) ) )
в соответствии с кодом, написанным в файле вида, он показывает, что out:
Notice (8): Undefined index: category[APP/View/Category/viewcategorys1.ctp, line 48]
Code Context
include - APP/View/Category/viewcategorys1.ctp, line 48
View::_evaluate() - CORE/Cake/View/View.php, line 945
View::_render() - CORE/Cake/View/View.php, line 907
View::render() - CORE/Cake/View/View.php, line 471
Controller::render() - CORE/Cake/Controller/Controller.php, line 952
Dispatcher::_invoke() - CORE/Cake/Routing/Dispatcher.php, line 194
Dispatcher::dispatch() - CORE/Cake/Routing/Dispatcher.php, line 162
[main] - APP/webroot/index.php, line 96
Как напечатать значение, т.е. 16250 в моем файле view.ctp? пожалуйста помогите
Вы можете напрямую распечатать итоговое значение ctp
echo $total[0][0]['ctotal'];
Другой способ - создать виртуальное поле
В Модале
public $virtualFields = array(
'ctotal' => 'sum(Category.rate)'
);
В контроллере
public function viewcategorys1() {
$this->loadModel("Category");
$total = $this->Category->find('all', array('fields' =>array('Category.ctotal'), 'conditions'=>array('Category.parentid' => 0)));
$this->set('sum',$total);
print_r($total);
}
Попробуйте, если это сработает:
<?php
foreach($sum[0] as $ctotal):
echo $ctotal['ctotal'];
endforeach;
?>