Kết nối mongodb với laravel

MongoDB là hệ quản trị CSDL NoSQL phổ biến nhất trên thế giới. Tuy nhiên mặc định Laravel PHP Framework lại không hỗ trợ MongoDB. Vì vậy trong tutorial này, VinaSupport.com sẽ hướng dẫn các bạn cài đặt và tích hợp MongoDB vào project Laravel.

Cài đặt MongoDB

Các bạn vui lòng tham khảo bài viết: Hướng dẫn cài đặt MongoDB 

Cài đặt MongoDB PHP Extension

Để cài đặt mongodb Extension cho PHP, chúng ta sử dụng command sau:

sudo /opt/lampp/bin/pecl install mongodb

Sau đó thêm dòng sau vào file php.ini và restart lại httpd

extension=mongodb.so

Cài đặt package jenssegers/mongodb cho Laravel

Đâu là thư viện giúp cho Laravel có thể thao tác với MongoDB. Cài đặt thông qua Composer

composer require jenssegers/mongodb

Sửa file config/app.php thêm MongoServiceProvider

Jenssegers\Mongodb\MongodbServiceProvider::class,

Thêm kết nối vào file config/database.php

'mongodb' => [
    'driver' => 'mongodb',
    'host' => env['DB_HOST', '127.0.0.1'],
    'port' => env['DB_PORT', 27017],
    'database' => env['DB_DATABASE', 'homestead'],
    'username' => env['DB_USERNAME', 'homestead'],
    'password' => env['DB_PASSWORD', 'secret'],
    'options' => [
        // here you can pass more settings to the Mongo Driver Manager
        // see //www.php.net/manual/en/mongodb-driver-manager.construct.php under "Uri Options" for a list of complete parameters that you can use


        'database' => env['DB_AUTHENTICATION_DATABASE', 'admin'], // required with Mongo 3+
    ],
],

Chú ý: Trên Ubuntu 16.04 fix lỗi

Sử dụng các command sau đây để fix lỗi này

strings /opt/lampp/lib/libstdc++.so.6 | grep CXXABI
locate libstdc++.so.6
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep CXXABI
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /opt/lampp/lib/libstdc++.so.6

Nguồn: vinasupport.com

laravel

Sep 29, 2019 2 min read

Với phiên bản mới nhất 6., Laravel đang hỗ trợ 4 loại DB: sqlite, mysql, pqsql, cuối cùng là sqlsrv. Vì vậy muốn sử dụng mongo cho dự án, chúng ta cần thêm thư viện hỗ trợ: jenssegers/laravel-mongodb.

Đầu tiên cần cài đặt thư viện vào project:

composer require jenssegers/mongodb

Tiếp theo, đăng ký service provider vào config/app.php:

Jenssegers\Mongodb\MongodbServiceProvider::class,

*Note: Với Laravel 6 trở lên, hệ thống sẽ tự động đăng ký cho bạn.

Đã hoàn thành bước cài đặt thư viện, tiếp theo cần config để hệ thống sử dụng mongo.

Đầu tiên config file .env:

Trong đó, DB_HOST , DB_PORT mặc định của mongo là 127.0.0.127017.
Tiếp theo là file app/config/database.php

Đến đây, coi như đã hoàn thành cài đặt và config mongo cho dự án. Mình sẽ thử sử dụng nhé.

Tạo một model Post cho table posts:

Viết một function dùng để lưu dữ liệu thông qua model Post [Để tiết kiệm thời gian, mình fake data]:

Sau khi chạy api này, chúng ta thử kiểm tra database nhé, mình sẽ dùng Robo3T:

Và đây là record mà chúng ta vừa tạo đã được lưu thành công:

Cài đặt và sử dụng MongoDB thật đơn giản phải không nào, bài tiếp theo, mình sẽ thực hành cài đặt và sử dụng Angular 8 trong project Laravel kết hợp với MongoDB để làm một SPA rất mạnh mẽ nhé.

P/s:
Nếu có vẫn gặp vướng mắc trong khi thực hành hoặc có bất kì thắc mắc về PHP, Laravel hay muốn tìm hiểu thêm các thông tin hữu ích, các bạn hãy tham gia group Laravel VietNam để được các admin và thành viên support trực tiếp vấn đề mà bạn gặp phải nhé.

Chủ Đề