A Redbean ORM bridge for Laravel 5
Requires
- php: >=5.5.0
- gabordemooij/redbean: ~4.2
- illuminate/auth: ~5.2
- illuminate/container: ~5.2
- illuminate/contracts: ~5.2
- illuminate/support: ~5.2
README
A Redbean ORM bridge for Laravel 5
Installation
Require this package
composer require laravel-redbean/orm
After adding the package, add the ServiceProvider to the providers array in config/app.php
LaravelRedbean\ORM\RedbeanServiceProvider::class,
To publish the config use:
php artisan vendor:publish
Usage
By default, Redbean will use the default connection in config/database.php.
You can now use Redbean as normal. Please read the Redbean documentation.
Multiple Connections
You can use multiple database connections by setting multiple_connections => true, in config/redbean.php which will then attempt to add each of connections in config/database.php.
By passing in the connection name from connections to RedBeanPHP\R::selectDatabase('connection_name'); you will get the connection you want. So for example, if you wanted to connect to mysql:
'connections' => [
'sqlite' => [
'driver' => 'sqlite',
'database' => database_path('database.sqlite'),
'prefix' => '',
],
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
],
Select mysql connection:
RedBeanPHP\R::selectDatabase('mysql');
Authentication
The package provides a default User model (LaravelRedbean\ORM\User::class) you can use or create your own based on it.
Implementing Authenticatable
Your user model must extend RedBeanPHP\SimpleModel and implement the Illuminate\Contracts\Auth\Authenticatable contract.
You may also use the provided trait LaravelRedbean\ORM\Auth\Authenticatable in your model and override where necessary.
Configuring Laravel
Edit Laravel's Auth configuration (/config/auth.php) to use with Redbean.
Set the users provider to the following:
'users' => [
'driver' => 'redbean',
'model' => LaravelRedbean\ORM\User::class,
],
Password resets
Your user model must implement the Illuminate\Contracts\Auth\CanResetPassword contract.
You may also use the provided trait LaravelRedbean\ORM\Auth\Passwords\CanResetPassword in your model and override where necessary.