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
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.1
và 27017
.
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é.