You are currently viewing Setting Up Doctrine2 ORM with Laravel 5

Setting Up Doctrine2 ORM with Laravel 5

  • Post published:January 6, 2017

The Object Relational Mapper (ORM) for PHP sits on top of a powerful DataBase Abstraction Layer (DBAL). One of its key features is the option to write database queries in a proprietary, object oriented, SQL dialect called Doctrine Query Language (DQL), inspired by Hibernates HQL. This provides developers with a powerful alternative to SQL that maintains flexibility without requiring unnecessary code duplication.

To set up Doctrine, there is a bridge that allows you to perform a matching action with Laravel 5’s existing configuration. In order to install Doctrine2 within your Laravel project, you need to run the following commands step by step:

Step 1: Add the package (delivered by the service provider) to the app/config.php:

composer require laravel-doctrine/orm

Step 2: Configure the alias:


Step 3: Publish the package configuration:

'EntityManager' => LaravelDoctrine\ORM\Facades\EntityManager::class

Step 4: Doctrine does not require database configuration and uses the current Laravel configuration as:

php artisan vendor:publish --tag="config"

But if you want to override the current Laravel configuration, then you should change the code in Config/doctrine.php (Doctrine config file) as:

'managers'                  => [
    'default' => [
        'dev'        => env('APP_DEBUG'),
        'meta'       => env('DOCTRINE_METADATA', 'annotations'),
        'connection' => env('DB_CONNECTION', 'mysql'),
        'namespaces' => [

And you should be all set!