Laravel框架中整合MongoDB和使用:
composer require jenssegers/mongodb ^3.3 -vvv(本人的laravel版本是5.5)
修改config/app.php
* 註冊服務
Jenssegers\Mongodb\MongodbServiceProvider::class,
* 新增 Facades
'Mongo' => Jenssegers\Mongodb\MongodbServiceProvider::class,
* 修改資料庫配置檔案 config/database.php 中
新增 MongoDB 的資料庫的資訊:
'mongodb' => [
'driver' => 'mongodb',
'host' => 'localhost',
'port' => 27017,
'database' => 'mydb',
'username' => '',
'password' => '',
],
'default' => env('DB_CONNECTION', 'mysql'),
改成:
'default' => env('DB_CONNECTION', 'mongodb'),
修改配置檔案.env
DB_CONNECTION=mongodb
// 建立一個 UserController.php 控制器
php artisan make:controller UserController
public function index(){
DB::collection('users') //選擇使用users集合
->insert([ //插入資料
'name' => 'wjb',
'age' => 29
]);
$res = DB::collection('users')->get(); //查詢所有資料
dd($res);
}
* 設定一個訪問路由, 此時時已成功插入和讀取mongodb的資料
Eloquent 模型
* 在 config/app.php 配置檔案中配置 MongoDB 的 Eloquent 類的別名
'Moloquent' => 'Jenssegers\Mongodb\Eloquent\Model',
* 新建一個 User.php 的 Model 類
php artisan make:model User
* 修改User模型
<?php
namespace App;
use Moloquent;
use DB;
class User extends Moloquent {
protected $connection = 'mongodb'; //庫名
protected $collection = 'users'; //文件名
protected $primaryKey = '_id'; //設定id
protected $fillable = ['id', 'name', 'phone']; //設定欄位白名單 }
UserController.php控制器中修改:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\User;
class UserController extends Controller
{
public function index(){
User::create([ //插入資料
'_id' =>1,
'name' =>'boss',
'phone' =>1308888888
]);
dd(User::all()); //查詢並列印資料
}
}