Просмотр истории репутации

  1. AndreyMarkelov

  2. Cawfee

    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
      Хотел записать в базу данные об игроке (пароль, ник и т.д) Но происходит ошибка и оно не записывается. Я написал чтобы ошибки сохранялись в файл. Комментарием отметил где ошибка
      Лог: