Search code examples
laravellaravel-5jenssegers-mongodb

Laravel 5 composer update not working?


I am using Laravel version 5.2 and Jenssegers MongoDB. I installed both and working fine but I have to use any other library and made changes in composer.json after that use command composer update. After using this command automatically Jenssegers MongoDB file removed. I don't know why this happen. After composer update why Jenssegers MongoDB file removed automatically? Please suggest me how to handel this?

My composer.json file

    {
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*",
        "acacha/admin-lte-template-laravel": "2.*"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "symfony/css-selector": "2.8.*|3.0.*",
        "symfony/dom-crawler": "2.8.*|3.0.*"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/common_helper.php"
        ]
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postInstall",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postUpdate",
            "php artisan optimize"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}

Solution

  • Write this "jenssegers/mongodb": "*", line in your composer.json file:-

    "require": {
            "php": ">=5.5.9",
            "laravel/framework": "5.2.*",
            "acacha/admin-lte-template-laravel": "2.*",
            "jenssegers/mongodb": "*",
    },
    

    And add the service provider in config/app.php

    Jenssegers\Mongodb\MongodbServiceProvider::class,
    Jenssegers\Mongodb\Auth\PasswordResetServiceProvider,
    

    then go to project root directory in terminal and run command composer update .

    In model file, you need to add below line at the top,

    use Jenssegers\Mongodb\Eloquent\Model as Eloquent; 
    

    Reference :- documentation