Trong Laravel 5, cấu hình cơ sở dữ liệu được thực hiện trong tệp cấu hình config/database.php. Dưới đây là các bước để cấu hình cơ sở dữ liệu:

1. Mở tệp cấu hình:

Tệp cấu hình cơ sở dữ liệu nằm trong thư mục config. Bạn có thể mở nó bằng đường dẫn sau:

config/database.php

2. Cấu hình mặc định trong config/database.php:

Đoạn mã dưới đây là một ví dụ về cấu hình mặc định của cơ sở dữ liệu trong Laravel 5:

return [

    'default' => env('DB_CONNECTION', 'mysql'),

    'connections' => [

        'sqlite' => [
            'driver' => 'sqlite',
            'database' => env('DB_DATABASE', database_path('database.sqlite')),
            'prefix' => '',
        ],

        'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

        'pgsql' => [
            'driver' => 'pgsql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '5432'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'prefix' => '',
            'schema' => 'public',
            'sslmode' => 'prefer',
        ],

        'sqlsrv' => [
            'driver' => 'sqlsrv',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '1433'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'prefix' => '',
        ],

    ],

    'migrations' => 'migrations',

    'redis' => [

        'client' => 'predis',

        'default' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => 0,
        ],

    ],

];

3. Cấu hình kết nối cơ sở dữ liệu:

Laravel 5 hỗ trợ nhiều loại cơ sở dữ liệu như MySQL, PostgreSQL, SQLite, và SQL Server. Bạn có thể cấu hình cho từng loại bằng cách thay đổi các giá trị sau trong file .env.

Ví dụ với MySQL:

Trong file .env:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_database_user
DB_PASSWORD=your_database_password
  • DB_CONNECTION: Chỉ định kiểu cơ sở dữ liệu, ở đây là mysql.
  • DB_HOST: Địa chỉ máy chủ cơ sở dữ liệu (thường là 127.0.0.1 cho máy cục bộ).
  • DB_PORT: Cổng kết nối đến cơ sở dữ liệu, mặc định cho MySQL là 3306.
  • DB_DATABASE: Tên của cơ sở dữ liệu.
  • DB_USERNAME: Tên người dùng cơ sở dữ liệu.
  • DB_PASSWORD: Mật khẩu của người dùng cơ sở dữ liệu.

Ví dụ với PostgreSQL:

Trong file .env:

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=your_database_name
DB_USERNAME=your_database_user
DB_PASSWORD=your_database_password

Ví dụ với SQLite:

Trong file .env:

DB_CONNECTION=sqlite
DB_DATABASE=/full/path/to/database.sqlite

Nếu bạn sử dụng SQLite, bạn cần chỉ định đường dẫn đầy đủ đến tệp SQLite trong biến DB_DATABASE.

4. Tùy chỉnh các thiết lập khác:

Trong tệp config/database.php, bạn cũng có thể tùy chỉnh thêm các tùy chọn khác như:

  • Charset và Collation: Cho MySQL, Laravel mặc định sử dụng utf8mb4utf8mb4_unicode_ci, hỗ trợ biểu tượng cảm xúc và các ký tự đặc biệt.
  • Strict Mode: Được bật mặc định trong MySQL để kiểm tra chặt chẽ dữ liệu, nhưng bạn có thể tắt bằng cách đặt strict thành false.

5. Chạy lệnh migrate:

Sau khi cấu hình cơ sở dữ liệu, bạn có thể kiểm tra kết nối và tạo bảng với lệnh migrate:

php artisan migrate

Lệnh này sẽ áp dụng các migrations đã tạo lên cơ sở dữ liệu của bạn.

Kết luận:

Cấu hình cơ sở dữ liệu trong Laravel 5 rất linh hoạt, cho phép sử dụng nhiều loại cơ sở dữ liệu khác nhau như MySQL, PostgreSQL, SQLite, và SQL Server. Bằng cách tùy chỉnh file .envconfig/database.php, bạn có thể dễ dàng kết nối với cơ sở dữ liệu mong muốn.