当前位置:首页 > CMS教程 > 其它CMS > 列表

Laravel框架中集成MongoDB和使用详解

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-08 16:07:05 浏览: 评论:0 

今天小编就为大家分享一篇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 的数据库的信息:

  1. 'mongodb' => [  
  2.   'driver' => 'mongodb',  
  3.   'host'  => 'localhost',  
  4.   'port'  => 27017,  
  5.   'database' => 'mydb',  
  6.   'username' => '',  
  7.   'password' => ''
  8. ], 
  9. 'default' => env('DB_CONNECTION''mysql'), 

改成:

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

修改配置文件.env

  1. DB_CONNECTION=mongodb 
  2. // 建立一个 UserController.php 控制器 
  3. php artisan make:controller UserController 
  4.  
  5. public function index(){
  
  6.  
  7. DB::collection('users')    //选择使用users集合
  
  8.  
  9. ->insert([       //插入数据
   
  10.  
  11. 'name' => 'wjb',
   
  12.  
  13. 'age'  => 29
  
  14.  
  15. ]);
  
  16.  
  17. $res = DB::collection('users')->get(); //查询所有数据
  
  18.  
  19. dd($res);
 
  20.  

* 设置一个访问路由, 此时时已成功插入和读取mongodb的数据

Eloquent 模型

* 在 config/app.php 配置文件中配置 MongoDB 的 Eloquent 类的别名

'Moloquent' => 'Jenssegers\Mongodb\Eloquent\Model',

* 新建一个 User.php 的 Model 类

php artisan make:model User

* 修改User模型

  1. <?php

 
  2.  
  3. namespace App; 
  4.  
  5. 

use Moloquent;
 
  6.  
  7. use DB; 
  8.  
  9. 

class User extends Moloquent
{
 
  10.  
  11. protected $connection = 'mongodb'//库名 
  12.  
  13. protected $collection = 'users';  //文档名
  
  14.  
  15. protected $primaryKey = '_id'//设置id
  
  16.  
  17. protected $fillable = ['id''name''phone']; //设置字段白名单
} 

UserController.php控制器中修改:

  1. <?php

 
  2.  
  3. namespace App\Http\Controllers;

 
  4.  
  5. use Illuminate\Http\Request;
 
  6.  
  7. use Illuminate\Support\Facades\DB;
 
  8.  
  9. use App\User;
 
  10.  
  11. class UserController extends Controller
{
  
  12.  
  13. public function index(){
    
  14.  
  15. User::create([      //插入数据
     
  16.  
  17. '_id'  =>1,
     
  18.  
  19. 'name' =>'boss',
     
  20.  
  21. 'phone' =>1308888888
    
  22.  
  23. ]);
   
  24.  
  25. dd(User::all());   //查询并打印数据
  
  26.  
  27. }
 
  28.  
  29. }

Tags: Laravel MongoDB

分享到: