UCP Регистрация

В теме 1 сообщение

ucp.png

 

Описание проекта

Готовая регистрация UCP. Регистрация и авторизация как в личный кабинет пользователя, так и в административную панель. В административной панели администратор может подтвердить или отменить регистрацию. Также имеется возможность редактировать данные пользователя. Поле «Сообщение» является необязательным, но если необходимо что-то отметить, можно оставить сообщение, которое будет отображено в письме пользователя. Проект включает только регистрацию с авторизацией, без дополнительного функционала, такого как донат или новости. Также присутствует минимальная верстка от Bootstrap. Этот проект является базой для вашего сайта.

 

Требования для запуска

  • PHP версии 8.2+
  • Composer
  • Node.js (npm)
  • MySQL версии 8.0

 

Инструкция по запуску

1. Скачивание проекта:

  • Скачайте архив с проектом и распакуйте его.

2. Создание базы данных:

  • Создайте пустую базу данных в MySQL.

3. Настройка .env

  • В корне проекта должен находиться файл .env. Если его нет, скопируйте файл env.example и переименуйте его в .env.

4. Генерация ключа приложения:

  • В терминале выполните команду:
php artisan key:generate

5. Настройка .env файла:

Откройте файл .env и укажите свои настройки:

 

Данные проекта:

SAMP_SERVER_NAME="Samp Role Play"
SAMP_SERVER_IP=127.0.0.1:7777

 

Подключение к базе данных:

DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=samp-ucp
DB_USERNAME=root
DB_PASSWORD=

 

Суперадмин и контактная почта:

SUPER_ADMIN_NAME="Super_Admin"
SUPER_ADMIN_PASSWORD=6Hm2Q74JW3vXnYE4rWEy7JrC
CONTACT_EMAIL=support@samp-rp.ru

 

Настройка почтового клиента:

MAIL_MAILER=smtp
MAIL_HOST=sandbox.smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=dd754ec54ff399
MAIL_PASSWORD=1b87f0d6cf1841
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="hello@example.com"

 

6. Установка зависимостей:

Установите зависимости с помощью следующих команд:

composer install
npm install

 

7. Очистка кеша:

Выполните команды для очистки кеша:

php artisan cache:clear
php artisan route:clear
php artisan config:clear
php artisan view:clear

 

8. Сборка проекта:

Соберите проект с помощью команды:

npm run build

 

9. Добавление пользовательских полей (опционально):

Если необходимо добавить новые поля в таблицу пользователей, откройте файл миграции: database/migrations/0001_01_01_000000_create_users_table.php.

Например, чтобы добавить поле "донат" после email, добавьте строку:

$table->integer('donate')->default(0);

Объяснение: integer — тип данных, default(0) — значение по умолчанию.

 

Затем откройте файл app/Models/User.php и добавьте новое поле в массив $fillable:

protected $fillable = [
    'name',         // Никнейм пользователя
    'birth_date',   // Дата рождения
    'gender',       // Пол
    'skin',         // ИД скина
    'email',        // Адрес электронной почты
    'donate',       // Донат
    'password',     // Пароль
    'status',       // Статус пользователя
];

 

10. Миграция и сидеры:

Выполните миграцию и примените сидеры (сидер создаёт суперадмина, без которого вход в админку невозможен):

php artisan migrate:fresh --seed

 

11. Запуск проекта:

Для запуска локального сервера выполните команду:

php artisan serve

 

Дополнительная информация

Более подробную информацию о структуре проекта и настройке вы можете найти по ссылке: > Готовый сайт для SAMP проекта <

 

Скачать: samp-ucp.zip

Скриншоты:

Спойлер

1.thumb.png.a642c9004c0a3c30bbf5f1430e4f4565.png2.thumb.png.c0339c3bc949224ed4fbd28191a4adec.png3.thumb.png.33e18610cb1beaf9d9ee1c576eab2138.png4.thumb.png.b6f26dae05ec14f0a541797ee2274318.png5.thumb.png.77523375ac5e002316c92423f1899d3d.png6.thumb.png.4a292cb32752091a0ad7385ba46ca937.png7.thumb.png.6a2151b6393194c418345f8ea4f0a51f.png8.thumb.PNG.0f278f5903305c9a47134d95d5401966.PNG9.thumb.PNG.f4f5164eb0bc1797d06f0d9894891e93.PNG10.thumb.png.41ef123c5c2526c2b7d6bf3d63f5e52a.png

 

Отредактировано пользователем Cawfee

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • От AndreyMarkelov

       
      Laravel — это современный PHP-фреймворк, который позволяет быстро и эффективно создавать веб-приложения. Его мощные инструменты и простая структура делают его идеальным выбором для разработки личного кабинета для вашего SAMP сервера. В этой статье мы создадим авторизацию для личного кабинета, которая будет работать с существующей базой данных SAMP сервера.
       
      Мы настроим три страницы:
      1. Главная: / — основная страница сайта.
      2. Авторизация: /auth — форма для ввода никнейма и пароля.
      3. Личный кабинет: /profile — страница с информацией об игроке после авторизации.
       
      Для начала давайте установим Laravel и подготовим базовое окружение.
       
       
       
      Установка Laravel
      1. Убедитесь, что ваш компьютер соответствует системным требованиям Laravel: 
      PHP версии 8.2 или выше Composer (менеджер зависимостей PHP)  
      2. Скачайте Laravel с помощью Composer 
      Откройте терминал и выполните следующую команду, чтобы создать новый проект Laravel: composer create-project laravel/laravel samp 
      Здесь samp — это название папки для проекта. Вы можете указать свое. 
       
      3. Перейдите в папку проекта: cd samp
       
      4. Настройте подключение к базе данных. 
      Laravel использует файл .env для хранения конфигурации. Найдите строки, отвечающие за подключение к базе данных, и укажите данные вашей SAMP базы:
      DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=название_базы DB_USERNAME=имя_пользователя DB_PASSWORD=пароль  
      5. Запустите встроенный сервер разработки Laravel: php artisan serve
      После запуска вы увидите сообщение, что сервер работает, например, на 127.0.0.1:8000. Перейдите по этой ссылке в браузере.
       
       
       
      Настройка роутов
      Откройте файл routes/web.php, который отвечает за определение роутов вашего сайта. Добавим туда наши роуты:
      <?php use Illuminate\Support\Facades\Route; // Главная страница Route::get('/', function () {     return view('welcome'); // Страница для главной }); // Страница авторизации Route::get('/auth', function () {     return view('auth'); // Отдельный шаблон для авторизации }); // Личный кабинет Route::get('/profile', function () {     return view('profile'); // Страница для личного кабинета });  
      Для каждого роута нам понадобятся базовые HTML-шаблоны. Создадим их в папке resources/views:
      1. Главная страница. Создайте файл resources/views/welcome.blade.php:
      <!DOCTYPE html> <html lang="ru"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Главная</title> </head> <body>     <h1>Добро пожаловать на ваш сайт!</h1>     <a href="/auth">Войти</a> </body> </html>  
      2. Страница авторизации. Создайте файл resources/views/auth.blade.php:
      <!DOCTYPE html> <html lang="ru"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Авторизация</title> </head> <body>     <h1>Вход в личный кабинет</h1>     <form action="/auth" method="POST">         @csrf         <label for="nickname">Ник:</label>         <input type="text" id="nickname"  data-cke-saved-name="nickname" name="nickname" required>         <br>         <label for="password">Пароль:</label>         <input type="password" id="password"  data-cke-saved-name="password" name="password" required>         <br>         <button type="submit">Войти</button>     </form> </body> </html>  
      3. Личный кабинет. Создайте файл resources/views/profile.blade.php:
      <!DOCTYPE html> <html lang="ru"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Личный кабинет</title> </head> <body>     <h1>Добро пожаловать в личный кабинет!</h1>     <p>Здесь будет отображаться информация о вашем аккаунте.</p>     <a href="/">Вернуться на главную</a> </body> </html>  
      Тестирование роутов. Теперь вы можете проверить роуты в браузере:
      Перейдите на 127.0.0.1:8000 — главная страница. Нажмите "Войти" и перейдите на 127.0.0.1:8000/auth — страница авторизации. Для /profile пока просто введите 127.0.0.1:8000/profile в адресной строке. Позже мы защитим эту страницу.  
       
      Миграции
      Миграции в Laravel позволяют выполнять определённые действия с базой данных, такие как создание таблиц, добавление, изменение или удаление колонок. Все манипуляции с базой данных происходят через миграции, что делает процесс удобным и структурированным.
       
      Вот несколько основных команд для работы с миграциями:
      Создание таблицы: php artisan make:migration create_news_table
      Проверка статуса миграций: php artisan migrate:status
      Откат последней миграции: php artisan migrate:rollback
       
      Откройте файл database/migrations/create_users_table.php. Если такого файла нет, создайте его с помощью команды в терминале: php artisan make:migration create_users_table
       
      Откройте файл и добавьте следующую структуру таблицы в метод up:
      Schema::create('users', function (Blueprint $table) {     $table->id(); // Автоматический ID     $table->string('nickname')->unique(); // Уникальный никнейм пользователя     $table->string('email')->unique(); // Уникальный email     $table->timestamp('email_verified_at')->nullable(); // Подтверждения email     $table->unsignedBigInteger('player_money')->default(0); // Деньги пользователя     $table->unsignedBigInteger('player_donate')->default(0); // Донат пользователя     $table->unsignedInteger('player_skin')->default(0); // ID скина     $table->string('password'); // Пароль     $table->rememberToken(); // Токен для "запомнить меня"     $table->timestamps(); // created_at и updated_at });  
      После того как вы добавили необходимые поля в файл миграции, выполните следующую команду: php artisan migrate.
       
      По завершении выполнения команды таблица будет создана. Вы можете открыть phpMyAdmin или любой другой инструмент для работы с базой данных и убедиться, что таблица появилась с нужными полями.
       
       
      Настройка модели
      Если у вас таблица называется accounts, то в Laravel рекомендуется создать модель с именем Account, чтобы придерживаться стандартов. Laravel автоматически связывает название модели во множественном числе с таблицей, если это возможно. Например:
      Модель Account по умолчанию будет связана с таблицей accounts.  Модель Player будет связана с таблицей players. Если ваше название модели совпадает с названием таблицы (во множественном числе), дополнительных настроек не требуется. Однако, если название отличается, нужно будет явно указать таблицу в модели: protected $table = 'my_users'; 
       
      Если ваша таблица называется accounts — создайте модель Account: php artisan make:model Account 
      Если ваша таблица называется users — откройте файл app/Models/User.php и добавьте все поля в $fillable, которые будут использоваться на сайте:
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; class User extends Authenticatable {     use HasFactory, Notifiable;     // Поля, которые будут использоваться на сайте.     protected $fillable = [         'nickname',         'email',         'player_money',         'player_donate',         'player_skin',         'password',     ];     // Поля, которые скрываются при сериализации модели.     protected $hidden = [         'password',     ]; }  
       
       
      Реализация логики авторизации
      1. Создание контроллера. Создадим контроллер для обработки роутов авторизации и личного кабинета. Назовём его AuthController: php artisan make:controller AuthController 
       
      2. Реализация методов в контроллере. Откройте файл app/Http/Controllers/AuthController.php и реализуйте методы:
       
      Отображение формы авторизации:
      public function showLoginForm() {     return view('auth'); }  
      Обработка авторизации:
      public function login(Request $request) {     // Валидируем данные     $request->validate([         'nickname' => 'required|string',         'password' => 'required|string',     ]);     // Получаем никнейм и пароль     $nickname = $request->input('nickname');     $password = $request->input('password');     // Хэшируем пароль в MD5     $hashedPassword = md5($password);     // Проверяем пользователя в базе данных     $user = User::where('nickname', $nickname)                 ->where('password', $hashedPassword)                 ->first();     if ($user) {         // Сохраняем пользователя в сессии         $request->session()->put('user', $user);         // Редирект в личный кабинет         return redirect()->route('profile');     }     // Возвращаем обратно с ошибкой     return back()->withErrors(['message' => 'Неверный никнейм или пароль']); }  
      Если в вашей базе данных пароли хранятся в формате bcrypt:
      public function login(Request $request) {     // Валидируем данные     $request->validate([         'nickname' => 'required|string',         'password' => 'required|string',     ]);     // Получаем никнейм и пароль     $nickname = $request->input('nickname');     $password = $request->input('password');     // Проверяем пользователя в базе данных     $user = User::where('nickname', $nickname)->first();     if ($user && Hash::check($password, $user->password)) {         // Сохраняем пользователя в сессии         $request->session()->put('user', $user);         // Редирект в личный кабинет         return redirect()->route('profile');     }     // Возвращаем обратно с ошибкой     return back()->withErrors(['message' => 'Неверный никнейм или пароль']); }  
      Личный кабинет:
      public function profile(Request $request) {     // Проверяем, авторизован ли пользователь     $user = $request->session()->get('user');     if (!$user) {         return redirect()->route('auth.form')->withErrors(['message' => 'Сначала войдите в систему']);     }     return view('profile', ['user' => $user]); }  
      Выход из аккаунта:
      public function logout(Request $request) {     // Удаляем данные из сессии     $request->session()->forget('user');     return redirect('/'); }  
      AuthController.php:
       
      3. Настройка роутов. Обновим routes/web.php, чтобы все роуты ссылались на методы контроллера:
      <?php use App\Http\Controllers\AuthController; use Illuminate\Support\Facades\Route; // Главная страница Route::get('/', function () {     return view('welcome'); }); // Авторизация Route::get('/auth', [AuthController::class, 'showLoginForm'])->name('auth.form'); Route::post('/auth', [AuthController::class, 'login'])->name('auth.login'); // Личный кабинет Route::get('/profile', [AuthController::class, 'profile'])->name('profile'); // Выход Route::get('/logout', [AuthController::class, 'logout'])->name('auth.logout');  
       
       
      Обновление шаблонов
      Чтобы пользователи видели сообщения об ошибках, добавим их в шаблон авторизации resources/views/auth.blade.php:
      <!DOCTYPE html> <html lang="ru"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Авторизация</title> </head> <body>     @if ($errors->any())         <div style="color: red;">             @foreach ($errors->all() as $error)                 <p>{{ $error }}</p>             @endforeach         </div>     @endif     <h1>Вход в личный кабинет</h1>     <form action="/auth" method="POST">         @csrf         <label for="nickname">Ник:</label>         <input type="text" id="nickname"  data-cke-saved-name="nickname" name="nickname" required>         <br>         <label for="password">Пароль:</label>         <input type="password" id="password"  data-cke-saved-name="password" name="password" required>         <br>         <button type="submit">Войти</button>     </form> </body> </html>  
      Отображение данных пользователя в личном кабинете. В файле resources/views/profile.blade.php выведем данные из базы:
      <!DOCTYPE html> <html lang="ru"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Личный кабинет</title> </head> <body>     <h1>Добро пожаловать, {{ $user->nickname }}!</h1>     <p>Ваш email: {{ $user->email }}</p>     <p>Игровой баланс: {{ $user->player_money }}</p>     <p>ID скина: {{ $user->player_skin }}</p>     <p>Донат счет: {{ $user->player_donate }}</p>     <a href="/">Вернуться на главную</a> </body> </html>  
      Скриншот:
       
       
      Дополнительно про Blade:
       
      В принципе, это базовая и максимально простая настройка авторизации. Вам остается только добавить собственную вёрстку. Также рекомендую использовать Middleware для защиты роутов, например, роута личного кабинета. Надеюсь, у вас всё получилось! Желаю успешной и продуктивной разработки ваших проектов!
       
      Готовый сайт для SAMP проекта: https://pawno-rus.ru/topic/8225-gotovyy-sayt-dlya-samp-proekta/
       
       
       
    • От Andrey Markelov

      Описание
      Готовый сайт для SAMP-проекта, разработанный на PHP-фреймворке Laravel. Проект полностью готов к запуску и включает следующие функции: раздел новостей, авторизация в личный кабинет, восстановление пароля, система донатов, история платежей, карта сервера, смена пароля. Сложный функционал намеренно не добавлялся, чтобы облегчить процесс изучения структуры проекта и работы с ним. Все реализовано максимально просто, чтобы новички могли быстро разобраться, где что находится. База данных содержит минимальный набор информации, поскольку у каждого SAMP-проекта своя уникальная структура и функционал. Это позволяет вам легко адаптировать сайт под ваш проект. Например, в личном кабинете вы самостоятельно можете подставить необходимые данные для отображения информации об аккаунте пользователя. Сайт также включает административную панель. Для доступа к админке перейдите по адресу /admin. Если вы уже авторизованы как администратор, система перенаправит вас на главную страницу админки. В противном случае откроется страница авторизации. Важно отметить, что авторизация в личном кабинете и в административной панели — это две разные системы, которые между собой не связаны. Проект создан с упором на простоту и функциональность, что делает его отличным стартовым решением для вашего SAMP-проекта.
       
       
       
      Структура страниц
      Публичный сайт
      1. Главная страница (/)
      Стандартная страница с базовой информацией о вашем проекте. Здесь размещены инструкции по началу игры, новости и контакты. Если в базе данных отсутствуют новости, блок с ними отображаться не будет — для отображения требуется как минимум одна новость.
       
      2. Новости (/news)
      Раздел, где отображаются все ваши новости. Используется пагинация: на одной странице выводится по 10 записей.
       
      3. О нас (/company/about)
      Раздел с более детальной информацией о вашем проекте.
       
      4. Пользовательское соглашение (/company/user-agreement)
      Раздел с текстом пользовательского соглашения.
       
      5. Политика обработки персональных данных (/company/privacy-policy)
      Страница, где размещена информация о политике обработки персональных данных.
       
      Профиль игрока
      1. Личный кабинет (/profile)
      Страница с общей информацией об аккаунте пользователя.
       
      2. История платежей (/profile/payment-history)
      Страница с историей всех платежей пользователя, независимо от их статуса. Используется пагинация: на одной странице отображается 10 записей.
       
      3. Карта сервера (/profile/map)
      Мониторинг карты сервера. На данный момент отображаются только дома и бизнесы, а также информация о них. Функционал можно расширить в зависимости от особенностей вашего SAMP-проекта.
       
      4. Настройки (/profile/settings)
      Страница с формой для смены пароля. При успешной смене пароля пользователю отправляется уведомление на почту. Функционал также может быть доработан в зависимости от ваших требований.
       
      Админка
      1. Главная страница (/admin)
      Основная информация для администратора. Сделано минималистично, функционал можно расширить при необходимости.
       
      2. Новости (/admin/news)
      Страница для управления новостями. Здесь отображаются все новости, независимо от их статуса. Реализованы кнопки для создания, редактирования и удаления новостей. Для редактирования контента используется QuillJS, что упрощает наполнение текстами. Изображения, добавленные в контент, сохраняются в базу данных в формате base64. Обложки новостей хранятся в каталоге public/storage/news_images. При редактировании или удалении новости ненужные файлы автоматически удаляются.
       
      3. Пользователи (/admin/users)
      Страница всех игроков вашего SAMP-проекта. Используется пагинация: на одной странице отображается по 10 записей. Неподтвержденные email-адреса выделяются красным цветом (подтвержденными считаются те, у которых в поле email_verified_at указана дата). На странице редактирования пользователя доступен раздел "Платежи", где выводятся все транзакции игрока, также с пагинацией (по 10 записей на странице).
       
      4. Администраторы (/admin/admins)
      Раздел для управления администраторами сайта (не игровыми). Используется пагинация: на одной странице выводится по 10 записей. По умолчанию в проекте существует супер-администратор (Super_Admin), который может создавать новых администраторов. Функционал включает создание, редактирование и удаление администраторов. Супер-админа удалить невозможно. Для разграничения прав администраторов рекомендуется использовать пакет spatie/laravel-permission, позволяющий добавлять роли (например, "модератор", "редактор").
       
      5. Личный кабинет администратора (/admin/profile)
      Простая страница с основной информацией о текущем администраторе. При необходимости функционал можно доработать.
       
       
       
      Пароль
      Насколько мне известно, большинство SAMP-проектов используют формат MD5 для хранения паролей. Однако Laravel и его пакеты для работы с авторизацией не поддерживают MD5 из-за его уязвимости. Поэтому было принято решение написать собственную реализацию авторизации. Функционал авторизации и смены пароля полностью работает с MD5. При этом авторизация в административную панель не использует MD5 и реализована с использованием более безопасных методов. Если в вашем проекте пароли хранятся не в формате MD5, вам потребуется немного изменить логику работы с паролями, чтобы адаптировать проект. Также настоятельно рекомендую добавить двухфакторную аутентификацию, если вы используете MD5 для хранения паролей, чтобы повысить уровень безопасности.
       
       
       
      Мои ожидания
      Исходя из структуры проекта, я предполагаю, что у вас уже настроена база данных с таблицами: users (пользователи — игроки), businesses (бизнесы), houses (дома).
       
      Таблица users:
      username — игровой ник;
      password — пароль;
      email — игровая почта;
      p_level — уровень;
      p_skin — ID скина;
      p_money — игровая валюта;
      p_donate — донат-счет;
      email_verified_at — дата подтверждения почты;
      created_at — дата создания аккаунта;
      updated_at — дата последнего обновления записи (обновляется автоматически).
       
      Таблицы houses и businesses:
      name — название;
      description — описание;
      price — государственная стоимость;
      entrance_x — координата входа по оси X;
      entrance_y — координата входа по оси Y;
      entrance_z — координата входа по оси Z;
      user_id — ID игрока, которому принадлежит дом или бизнес.
       
      Для карты в личном кабинете используются координаты X и Y. Если в вашей базе данных эти поля называются иначе, не забудьте внести изменения в контроллер MapController.php и файл map.blade.php.
       
       
       
      Структура проекта
      Для работы с проектом рекомендую использовать IDE PhpStorm. Вы можете навести курсор на любой метод, нажать Ctrl, чтобы перейти к его реализации, и таким образом разобраться, где и как вызывается код.
       
      Основные файлы и директории
      routes/web.php Здесь находятся роуты для публичной части сайта. Для каждой страницы и её логики создан отдельный роут.
      routes/admin.php Этот файл содержит роуты, относящиеся к админке.
       
      Проект построен по принципу MVC (Model-View-Controller): 
      Model — работа с базой данных.
      View — представления (HTML-шаблоны).
      Controller — логика, например, извлечение данных из базы и передача их в представления.
       
      app/Models В этой папке находятся модели, которые представляют таблицы базы данных. Например, app/Models/User связана с таблицей users.
      resources/views Здесь хранится вся верстка сайта, включая шаблоны административной панели. В любом шаблоне вам будут доступны две переменные: $serverName и $serverIP.
      app/Http/Controllers Содержит контроллеры. Для каждой части логики создается отдельный контроллер. Также есть папка Admin, где находятся контроллеры, относящиеся к админке.
       
      Middleware
      В проекте используются два Middleware:
      AuthenticateUser — проверяет авторизацию пользователя. Например, чтобы открыть страницу личного кабинета, используется этот Middleware. Если пользователь не авторизован, доступ к странице будет закрыт.
      AuthenticateAdmin — отвечает за авторизацию в админке. Например, для создания новости или входа в административную панель.
       
      В роутах они называются auth.user и auth.admin.
       
      Работа с базой данных
      database/seeders — Здесь находятся сидеры, которые используются для заполнения базы данных. Например, для разработки или тестирования можно заполнить таблицы фейковыми данными с помощью пакета fakerphp/faker.
       
      На данный момент в проекте есть три сидера: для домов, бизнесов и создания супер-администратора. По умолчанию используется DatabaseSeeder.
       
      Команды для работы с сидерами:
      Запуск всех сидеров: php artisan db:seed.
      Запуск конкретного сидера: php artisan db:seed --class=UserSeeder.
       
      database/migrations — Важная часть проекта. Все манипуляции с базой данных (создание, изменение, удаление таблиц) выполняются через миграции. Миграции можно отслеживать, откатывать и проверять их статус.
       
      Основные команды:
      Создание миграции: php artisan make:migration create_users_table.
      Применение миграции: php artisan migrate.
      Откат миграции: php artisan migrate:rollback (можно указать, сколько миграций откатить).
      Просмотр всех доступных команд: php artisan.
       
      Фронтенд
      public/assets — В этой директории находятся стили, JavaScript-код и изображения.
      resources — Файлы CSS и JS также находятся в этой папке. Если вы изменяете их, обязательно выполните сборку проекта командой: npm run build
       
       
       
      Донат
      Платежных систем достаточно, и каждый может выбрать подходящую по своему усмотрению. Однако в данном проекте не реализован полный функционал оплаты. Есть таблица с оплатами, в админке отображается статистика, а у пользователя — история платежей, но сам процесс оплаты не предусмотрен. Я лишь подготовил основу, и вам нужно выбрать платёжную систему и подключить её самостоятельно. В вашем распоряжении будет контроллер ShopController.php, в котором есть метод processPayment. В этом методе вы получаете информацию о пользователе, который совершает донат, сумму и email. Все данные для записи в таблицу о платеже уже есть, и создается запись со статусом waiting. Все возможные статусы можно найти в файле app/Enums/PaymentStatus. После того как платеж будет обработан, вам нужно изменить статус в таблице с waiting на success или error, в зависимости от результата. Если платёж успешен, также необходимо обновить поле p_donate в таблице users.
       
      Пример кода для изменения статуса и обновления данных пользователя:
      $payment->update(['status' => 'success']); $user->increment('p_donate', $validated['amount']);  
      В интернете есть множество статей о том, как подключить платёжные системы, а также существуют специализированные пакеты для Laravel, которые могут упростить этот процесс.
       
       
       
      Что нужно для запуска проекта
      Для пользователей Linux данная инструкция не требуется, так как предполагается, что вы уже знакомы с процессом настройки.
       
      1. Установите OpenServer или аналогичный инструмент
      2. Проверьте версии установленных инструментов, используя команды:
      2.1. php -v
      2.2. composer -V
      3. Установите Node.js. После установки убедитесь, что Node.js и npm работают корректно, выполнив команды:
      3.1. node -v
      3.2. npm -v
       
      PHP: версия 8.2 или выше. MySQL: у меня 8.0 на момент разработки.
       
       
       
      Первые шаги
      Скорее всего, вы скачали архив проекта, но инструкция составлена так, будто вы клонировали репозиторий с GitHub.
      Рекомендую для начала использовать предоставленные данные проекта, чтобы разобраться в его работе, вместо того чтобы сразу адаптировать вашу базу данных.
       
      1. Создание базы данных.
      Создайте пустую базу данных для проекта.
       
      2. Настройка файла .env. 
      В корневой директории проекта у вас должен быть файл .env. Если его нет, скопируйте файл env.example и переименуйте его, удалив .example:
       
      3. Далее выполните команду: php artisan key:generate
       
      4. Откройте файл .env и настройте его под свои параметры:
      APP_URL — Укажите адрес сайта (локально - локальный, на хостинге - ссылка сайта).
      SAMP_SERVER_NAME — Название вашего SAMP-проекта.
      SAMP_SERVER_IP — IP-адрес вашего SAMP-сервера.
      DB_HOST — Хост базы данных.
      DB_PORT — Порт базы данных.
      DB_DATABASE — Имя базы данных.
      DB_USERNAME — Имя пользователя базы данных.
      DB_PASSWORD — Пароль для базы данных (оставьте пустым, если не требуется).
      SUPER_ADMIN_PASSWORD — Задайте сложный пароль для супер-администратора (требуется минимум 8 символов).
      CONTACT_EMAIL — Почта проекта.
       
      Найдите переменную MAIL_MAILER и укажите настройки для вашего почтового сервиса. Без этого отправка писем на почту не будет работать. Для тестирования локально я использовал mailtrap.
       
      5. Установка зависимостей. 
      Установите зависимости PHP и Node.js:
      5.1. composer install
      5.2. npm install
       
      6. Очистка кеша. 
      На всякий случай очистите все кеши:
      6.1. php artisan cache:clear
      6.2. php artisan route:clear
      6.3. php artisan config:clear
      6.4. php artisan view:clear
       
      7. Сборка фронтенда. 
      Соберите проект: npm run build
       
      8. Файловое хранилище. 
      Чтобы изображения, которые вы загружаете, были видны в шаблонах, используйте команду: php artisan storage:link.
       
      9. Миграции и сидеры. 
      Выполните миграцию базы данных и запустите сидеры для начального заполнения: php artisan migrate:fresh --seed
       
      10. Запуск проекта. 
      Для запуска проекта выполните: php artisan serve
       
      Не пугайтесь большого количества шагов на первый взгляд — на самом деле все достаточно просто. Основные действия включают настройку файла .env и установку зависимостей. Это всего лишь первоначальная настройка. В дальнейшем для запуска проекта вам понадобится всего одна команда: php artisan serve
       
      Если все сделано правильно, сайт будет доступен по адресу: 127.0.0.1:8000
       
       
      Дополнительно:
      В архиве предоставлен дамп базы данных, использовавшийся на этапе разработки.
      Пароли в таблице users: 123123
      Пароли в таблице admins: 12345678
       
       
       
      Скачать: https://disk.yandex.by/d/UNdQVj-XATlvzw
       
      Скриншоты:






















    • От INewBRO
      Хотел записать в базу данные об игроке (пароль, ник и т.д) Но происходит ошибка и оно не записывается. Я написал чтобы ошибки сохранялись в файл. Комментарием отметил где ошибка
      Лог: