اتصال به دیتابیس MariaDB در برنامه‌های Laravel



برای اتصال به دیتابیس MariaDB نیاز به انجام کار خاصی نیست. فقط کافیست تا طبق مستندات تنظیم متغیرهای محیطی، متغیرهای مربوط به دیتابیس خود را به برنامه اضافه کنید؛ برای نمونه:

کپی
DB_CONNECTION=mariadb
DB_HOST=bromo.liara.cloud
DB_PORT=32909
DB_DATABASE=hardcore_napier
DB_USERNAME=root
DB_PASSWORD=gtccgkT8fHXuHJ52Sm0hBmf5

پس از این کار، می‌توانید به دیتابیس مدنظرتان متصل شده و از آن استفاده کنید. به عنوان مثال، می‌توانید برای تست اتصال به دیتابیس، با اجرای دستور زیر، یک کنترلر به نام DatabaseController بسازید:

کپی
php artisan make:controller DatabaseController

در ادامه، می‌توانید قطعه کد زیر را در app/Http/Controllers/DatabaseController.php قرار دهید:

کپی
<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Config;
use Illuminate\Http\Request;

class DatabaseController extends Controller
{
    public function checkConnection()
    {
        $databases = [
            'mariadb' => 'default',
        ];

        $results = [];

        foreach ($databases as $connection => $env) {
            try {
                Config::set('database.connections.' . $connection, [
                    'driver' => env($env . '_CONNECTION', 'mariadb'),
                    'host' => env($env . '_HOST', '127.0.0.1'),
                    'port' => env($env . '_PORT', '3306'),
                    'database' => env($env . '_DATABASE', 'forge'),
                    'username' => env($env . '_USERNAME', 'forge'),
                    'password' => env($env . '_PASSWORD', ''),
                    'charset' => 'utf8mb4',
                    'collation' => 'utf8mb4_unicode_ci',
                    'prefix' => '',
                    'strict' => true,
                    'engine' => null,
                ]);

                DB::connection($connection)->getPdo();
                $results[$connection] = 'Connection successful';
            } catch (\Exception $e) {
                $results[$connection] = 'Connection failed: ' . $e->getMessage();
            }
        }

        return response()->json($results);
    }
}

در نهایت، کافیست تا در routes/web.php قطعه کد زیر را اضافه کنید:

کپی
use App\Http\Controllers\DatabaseController;

Route::get('/check-database-connection', [DatabaseController::class, 'checkConnection']);

اکنون می‌توانید برنامه‌تان را در لیارا مستقر کرده و در صفحه check-database-connection/ وضعیت اتصال به دیتابیس خود را بررسی کنید.