Я получил эту ошибку, когда я пытался интегрировать плагины для диаграмм. Все плагины, которые я нашел в Интернете, предназначены для тортов версии 2. *. Я пытаюсь сделать то же самое для 3.0 и получил эту ошибку. Вот мой код. Я также пробовал высокие графики и получил то же самое.
use App\Controller\AppController;App::uses('AppController', 'Controller');
App::uses('GoogleCharts', 'GoogleCharts.Lib');
class ChartsController extends AppController {
public $helpers = array('GoogleCharts.GoogleCharts');
//Setup data for chart
public function index() {
$chart = new GoogleCharts();
$chart->type("LineChart");
//Options array holds all options for Chart API
$chart->options(array('title' => "Recent Scores"));
$chart->columns(array(
//Each column key should correspond to a field in your data array
'event_date' => array(
//Tells the chart what type of data this is
'type' => 'string',
//The chart label for this column
'label' => 'Date'
),
'score' => array(
'type' => 'number',
'label' => 'Score',
//Optional NumberFormat pattern
'format' => '#,###'
)
));
//You can also manually add rows:
$chart->addRow(array('event_date' => '1/1/2012', 'score' => 55));
//Set the chart for your view
$this->set(compact('chart'));
}
}
Вы не можете просто соединить вещи Cake 2x и Cake 3x и ожидать, что они будут работать, если плагин не создан для 3.x, вы просто не можете использовать его как таковой.
Вы получаете ошибку, потому что нет App
Класс в текущем пространстве имен, Cake 3x использует реальные пространства имен и автозагрузку, поэтому, если вы хотите использовать App
класс, вам придется импортировать его с помощью use
заявление
use Cake\Core\App;
Однако нет App::uses()
больше в любом случае, вы либо используете автозагрузку, либо просто включают/требовать файлы вручную.
Предлагаемые чтения:
Других решений пока нет …