gpt4 book ai didi

mongodb - 流明和 MongoDB?

转载 作者:IT老高 更新时间:2023-10-28 13:10:53 25 4
gpt4 key购买 nike

是否有可能将 mongodb 连接设置包含到 lumen 框架中。正如我所看到的,config/database.php 在内部加载在 lumen 包中。有没有办法以某种方式扩展它以包含 mongodb 连接设置?

最佳答案

我们实际上在一个大型项目中使用了 Lumen、Laravel、Mongo 和 MySQL,所以我可以帮助您完成这个项目。假设您想将 MongoDB 与 eloquent 一起使用,而不是与原始 MongoClient 一起使用。你可以从 jensegers here 找到我正在使用的库。 .

安装 MongoDB 扩展

首先,您需要安装 PHP 的依赖项以与 mongo 交互。安装 mongo 扩展的细节可以在 PHP documentation 上找到。 .

之后,您必须编辑平台 (apache/cli/nginx) 的 php.ini 文件以加载扩展。我在模块设置

之前添加了以下内容
extension=mongo.so

不用说修改配置后需要重启apache/nginx。

配置流明

在您的根 lumen 文件夹中,您可以使用以下命令将其添加到您的要求中。

composer require jenssegers/mongodb

从那里你还需要加载 MongodbServiceProvider before Facades 或 Eloquent 被初始化。

$app->register(Jenssegers\Mongodb\MongodbServiceProvider::class);

$app->withFacades();

$app->withEloquent();

为了简化组织配置,我还创建了一个配置文件夹和一个 database.php 配置文件。由于 Lumen 不会尝试自动加载或搜索此目录,我们必须告诉它加载此配置。我在加载应用程序路由之前放置了以下行。

$app->configure('database');

在 database.php 中,mongodb 驱动程序需要一个特定的结构。我在这里包含了 mysql,因为我同时使用了两者,但是如果你只使用 mongo,你可以将默认值更改为 mongodb 并删除 mysql 配置。

return  [
'default' => 'mysql',

'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', ''),
'username' => env('DB_USERNAME', ''),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],

'mongodb' => array(
'driver' => 'mongodb',
'host' => env('MONGODB_HOST', 'localhost'),
'port' => env('MONGODB_PORT', 27017),
'username' => env('MONGODB_USERNAME', ''),
'password' => env('MONGODB_PASSWORD', ''),
'database' => env('MONGODB_DATABASE', ''),
'options' => array(
'db' => env('MONGODB_AUTHDATABASE', '') //Sets the auth DB
)
),

],
];

通过配置,您现在可以创建一个模型,在编写本文为 mongo 创建一个模型时(查看 github 页面),您可以使用以下内容作为基础。如果 mongo 是您的默认驱动程序,您可以忽略 $connection 变量。

<?php

namespace App;

use Jenssegers\Mongodb\Model as Eloquent;

class Example extends Eloquent
{
protected $connection = 'mongodb';
protected $collection = 'example';
protected $primaryKey = '_id';
}

到这里,你应该可以正常与 mongo 交互了,有关驱动程序的详细信息,请查看 github 页面以获取有关它的文档。

如果此答案对您有帮助,您可以将其标记为答案吗?

关于mongodb - 流明和 MongoDB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31547827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com