Работать с базой данных в CakePHP очень просто. Мы поймем операции CRUD (создание, чтение, обновление, удаление) в этой главе. Прежде чем мы продолжим, нам нужно создать следующую таблицу пользователей в базе данных.
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `password` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE = InnoDB AUTO_INCREMENT = 7 DEFAULT CHARSET = latin1
Кроме того, нам также необходимо настроить нашу базу данных в файле config / app.php .
Вставить запись
Чтобы вставить запись в базу данных, нам сначала нужно получить таблицу, используя класс TableRegistry . Мы можем извлечь экземпляр из реестра, используя метод get () . Метод get () примет имя таблицы базы данных в качестве аргумента.
Этот новый экземпляр используется для создания нового объекта. Установите необходимые значения с экземпляром новой сущности. Теперь нам нужно вызвать метод save () с экземпляром класса TableRegistry , который вставит новую запись в базу данных.
пример
Внесите изменения в файл config / rout.php, как показано в следующей программе.
конфиг / routes.php
<?php use Cake\Core\Plugin; use Cake\Routing\RouteBuilder; use Cake\Routing\Router; Router::defaultRouteClass('DashedRoute'); Router::scope('/', function (RouteBuilder $routes) { $routes->connect('/users/add', ['controller' => 'Users', 'action' => 'add']); $routes->fallbacks('DashedRoute'); }); Plugin::routes();
Создайте файл UsersController.php в src / Controller / UsersController.php . Скопируйте следующий код в файл контроллера.
SRC / контроллер / UsersController.php
<?php namespace App\Controller; use App\Controller\AppController; use Cake\ORM\TableRegistry; use Cake\Datasource\ConnectionManager; use Cake\Auth\DefaultPasswordHasher; class UsersController extends AppController{ public function add(){ if($this->request->is('post')){ $username = $this->request->data('username'); $hashPswdObj = new DefaultPasswordHasher; $password = $hashPswdObj->hash($this->request->data('password')); $users_table = TableRegistry::get('users'); $users = $users_table->newEntity(); $users->username = $username; $users->password = $password; if($users_table->save($users)) echo "User is added."; } } } ?>
Создайте каталог Users в src / Template и в этом каталоге создайте файл View с именем add.ctp . Скопируйте следующий код в этот файл.
SRC / Template / Users / add.ctp
<?php echo $this->Form->create("Users",array('url'=>'/users/add')); echo $this->Form->input('username'); echo $this->Form->input('password'); echo $this->Form->button('Submit'); echo $this->Form->end(); ?>
Выполните приведенный выше пример, посетив следующий URL.
HTTP: // локальный: 85 / CakePHP / пользователей / добавить
Выход
После выполнения вы получите следующий вывод.