сначала создайте Dashboard Controller внутри ./src/Controller/
с именем файла DashboardsController.php
.Обычно панель инструментов имеет только одну индексную функцию, если вы не подготовите несколько подразделов.Здесь мы предполагаем, что у вас есть только одна страница.
<?PHP
namespace App\Controller;
use App\Controller\AppController;
class DashboardsController extends AppController {
public function index(){
$this->loadModel ('States');
$states = $this->States->find('all'); // query all states
$this->set ('states', $states); // save states inside view
}
} // end class DashboardsController
?>
Это C из MVC.
Если у вас нет специальных функций в ваших таблицах и объектах, нет необходимости создавать таблицуclass или Entity class, если вам не нужны объявления PHPDoc.Cake ORM вступает во владение для вас (класс по умолчанию).Итак, давайте рассмотрим M из MVC.
$this->loadModel ('States');
загружает только модель внутри контроллера.Не меньше, но не больше.Если вы загрузили модель внутри контроллера, вы можете получить доступ к этой модели с помощью $this->States
(например, $this->States->find('all');
).
Теперь вы должны сохранить результат внутри представления (из контроллера: $this->set ('states', $states);
).
Последняя часть - это представление (V) из MVC.
Создатьфайл внутри ./src/Template/Dashboards/
с именем index.ctp
(то есть файл шаблона для индексной функции (действия) внутри контроллера Dashboards).
<?PHP /* index function of Dashboards Controller */ ?>
<ul>
<?PHP foreach ($states as $state) : ?>
<li><?=$state->title; ?></li>
<?PHP endforeach; ?>
</ul>
Теперь вы можете получить доступ к панели мониторинга с помощью URL-адреса, за которым следуетИмя контроллера (например, http://{url-to-your-cake-system}/dashboards/
).
Вот и все.Торт использовать понятие "соглашение над конфигурацией".Поэтому, если вы цепляетесь за условные обозначения (файловую структуру, имена файлов, имена классов, имена таблиц и т. Д.), Cake делает все это для вас более или менее автоматически.
PS На мой взгляд, существует всего несколько(и даже менее правильно) подходы к использованию TableRegistry.Вы должны попытаться избежать этого с самого начала.