اذهب إلى المحتوى

السؤال

نشر

أحاول استخدام Mongodb مع لارافيل في lumen على تطبيق موزّع، وقمت بتعديل ملف database.php وإضافة الاتصال مع mongodb ولكن لا يتم التعرف على الاتصال نهائياً ضمن الكود.

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', '')
            )
        ),

    ],
];

كيف يمكنني إضافة الاتصال مع mongodb وإنشاء مودل؟

Recommended Posts

  • 0
نشر

أولاً يجب تحميل الإضافة الخاصة بـ PHP ليستطيع التعامل مع Mongodb بتعديل ملف php.ini وإضافة السطر التالي:

extension=mongo.so

ويكن أيضاً تحميله بشكل يدوي كالتالي:

Installing '/usr/lib/php/extensions/no-debug-non-zts-20060613/mongo.so'

ولمزيد من المعلومات حول ذلك يمكنك الاطلاع على الإضافة الخاصة ب mongodb في التوثيق الرسمي ل PHP.

بعد ذلك، يجب التوجه إلى مجلّد المشروع الرئيسي وتنفيذ الأمر التالي:

composer require jenssegers/mongodb

وبعدها يجب إضافة المزوّد الخاص بها قبل تعريف Facades أو Eloquent وإلا لن تعمل بالشكل المطلوب:

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

$app->withFacades();

$app->withEloquent();

وأخيراً، يجب تحميل الإعدادات تلقائياً وقبل تعريف المسارات نظراً لأن lumen لا يقوم بالتحميل التلقائي لها:

$app->configure('database');

وعندها يمكن استخدام الاتصال وتعريف المودل كالتالي:

<?php

namespace App;

use Jenssegers\Mongodb\Model as Eloquent;

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

كما يوجد حل بديل لما سبق عن طريق تحميل المكتبة التالية:

composer require nordsoftware/lumen-doctrine-mongodb-odm

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...