20250808-1
This commit is contained in:
parent
caf65933d1
commit
1577747e6f
@ -30,9 +30,11 @@ namespace App\Models;
|
||||
|
||||
use goodboyalex\php_db_components_pack\attributes\AutoIncrement;
|
||||
use goodboyalex\php_db_components_pack\attributes\FieldName;
|
||||
use goodboyalex\php_db_components_pack\attributes\IgnoredInDB;
|
||||
use goodboyalex\php_db_components_pack\attributes\NotNull;
|
||||
use goodboyalex\php_db_components_pack\attributes\PrimaryKey;
|
||||
use goodboyalex\php_db_components_pack\attributes\Unique;
|
||||
use goodboyalex\php_db_components_pack\enums\DBOperation;
|
||||
use goodboyalex\php_db_components_pack\interfaces\IDBItem;
|
||||
|
||||
class User implements IDBItem
|
||||
@ -40,7 +42,7 @@ class User implements IDBItem
|
||||
/**
|
||||
* @var int $Id Идентификатор пользователя.
|
||||
*/
|
||||
#[PrimaryKey, NotNull, AutoIncrement, FieldName('id'), Unique]
|
||||
#[PrimaryKey, NotNull, AutoIncrement, FieldName('id'), Unique, IgnoredInDB(DBOperation::Insert)]
|
||||
public int $Id = 0;
|
||||
|
||||
/**
|
||||
@ -54,6 +56,19 @@ class User implements IDBItem
|
||||
*/
|
||||
#[NotNull, FieldName('user_mail'), Unique]
|
||||
public string $Email = '';
|
||||
|
||||
/**
|
||||
* Конструктор.
|
||||
*
|
||||
* @param int $id Идентификатор пользователя
|
||||
* @param string $name Имя пользователя
|
||||
* @param string $email Адрес EMAIL
|
||||
*/
|
||||
public function __construct(int $id = 0, string $name = "", string $email = "") {
|
||||
$this->Id = $id;
|
||||
$this->Name = $name;
|
||||
$this->Email = $email;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -4,60 +4,62 @@
|
||||
научимся добавлять данные в неё.
|
||||
|
||||
Для добавления одной строки нужно воспользоваться
|
||||
методом [Insert](../class_desc/classes/Database.md).
|
||||
методом [Insert](../class_desc/classes/Database.md#51-одинарная-вставка-insert).
|
||||
|
||||
Создадим далее макет класса, описывающего пользователя сайта.
|
||||
Заполним далее класс `User` следующими данными:
|
||||
|
||||
```php
|
||||
<?php
|
||||
$oneUser = new User (1, "Ivan", "ivan@example.com");
|
||||
```
|
||||
|
||||
namespace App\Models;
|
||||
Давайте добавим эти данные в таблицу `users`.
|
||||
|
||||
use goodboyalex\php_db_components_pack\attributes\AutoIncrement;
|
||||
use goodboyalex\php_db_components_pack\attributes\FieldName;
|
||||
use goodboyalex\php_db_components_pack\attributes\NotNull;
|
||||
use goodboyalex\php_db_components_pack\attributes\PrimaryKey;
|
||||
use goodboyalex\php_db_components_pack\attributes\Unique;
|
||||
use goodboyalex\php_db_components_pack\interfaces\IDBItem;
|
||||
```php
|
||||
$result = $db->Insert('users', $oneUser);
|
||||
|
||||
class User implements IDBItem
|
||||
{
|
||||
/**
|
||||
* @var int $Id Идентификатор пользователя.
|
||||
*/
|
||||
#[PrimaryKey, NotNull, AutoIncrement, FieldName('id'), Unique]
|
||||
public int $Id = 0;
|
||||
if ($result === false)
|
||||
echo "Произошла ошибка!";
|
||||
else
|
||||
echo "Запись добавлена! Идентификатор записи: $result";
|
||||
```
|
||||
|
||||
/**
|
||||
* @var string $Name Имя пользователя.
|
||||
*/
|
||||
#[NotNull, FieldName('user_name')]
|
||||
public string $Name = '';
|
||||
После этого, таблица в БД примет вид:
|
||||
|
||||
/**
|
||||
* @var string $Email Почта пользователя.
|
||||
*/
|
||||
#[NotNull, FieldName('user_mail'), Unique]
|
||||
public string $Email = '';
|
||||
| id | user_name | user_mail |
|
||||
|:--:|:---------:|:----------------:|
|
||||
| 1 | Ivan | ivan@example.com |
|
||||
|
||||
Пусть далее, у нас даны несколько записей:
|
||||
|
||||
```php
|
||||
<?php
|
||||
$twoUser = new User (name: "Olga", email: "olga@example.com");
|
||||
$threeUser = new User (name: "Oleg", email: "oleg@mail.ru");
|
||||
$fourUser = new User (name: "Nikolay", email: "nikolay@example.com");
|
||||
```
|
||||
|
||||
Давайте добавим их в БД. Для добавления сразу стольких объектов подойдёт
|
||||
метод [InsertMany](../class_desc/classes/Database.md#52-массовая-вставка-insertmany):
|
||||
|
||||
```php
|
||||
$result = $db->InsertMany('users', $twoUser, $threeUser, $fourUser);
|
||||
|
||||
if ($result === false)
|
||||
echo "Произошла ошибка!";
|
||||
else {
|
||||
$idsList = implode(', ', $result);
|
||||
echo "Записи добавлена! Идентификаторы записей: $idsList";
|
||||
}
|
||||
```
|
||||
|
||||
Итак, у нас в таблице должно быть **3 столбца**:
|
||||
После этого, таблица в БД примет вид:
|
||||
|
||||
| id | user_name | user_mail |
|
||||
|:--:|:---------:|:---------:|
|
||||
| - | - | - |
|
||||
|
||||
Значения во всех столбцах, кроме `user_name` должны быть уникальными, во всех столбцах не пустыми, а первичным ключом
|
||||
таблицы является столбец `id` с автозаполнением.
|
||||
|
||||
Теперь давайте создадим таблицу `user`:
|
||||
|
||||
```php
|
||||
if (!$db->CreateTable('user', "\\App\\Models\\User"))
|
||||
throw new PDOException("Ошибка создания таблицы: users");
|
||||
```
|
||||
|
||||
Таблица создана.
|
||||
| id | user_name | user_mail |
|
||||
|:--:|:---------:|:-------------------:|
|
||||
| 1 | Ivan | ivan@example.com |
|
||||
| 2 | Olga | olga@example.com |
|
||||
| 3 | Oleg | oleg@mail.ru |
|
||||
| 4 | Nikolay | nikolay@example.com |
|
||||
|
||||
[Предыдущий пункт](create_table.md) | [На главную](../index.md) | [Следующий пункт](../index.md)
|
Loading…
x
Reference in New Issue
Block a user