phillx / lumen-rethinkdb
Lumen的RethinkDB适配器
Requires
- php: >=5.5.0
- danielmewes/php-rql: ~2.3.0
- illuminate/container: >=5.0.0
- illuminate/contracts: >=5.0.0
- illuminate/database: >=5.0.0
- illuminate/support: >=5.0.0
Requires (Dev)
- codeclimate/php-test-reporter: 0.1.*@dev
- mockery/mockery: 0.9.*@dev
- orchestra/testbench: 3.0.*
- phpunit/phpunit: ~4.0
- psr/log: 1.0.0
This package is not auto-updated.
Last update: 2024-10-02 19:36:14 UTC
README
This package is fork of duxet/laravel-rethinkdb with fix and how-to for Lumen 5.6
安装
要求。
安装
安装的Composer命令
composer require "phillx/lumen-rethinkdb:dev-master"
这将安装该软件包以及所有其他所需软件包。
服务提供者
安装库后,您需要在您的bootstrap/app.php
文件中注册Service Provider
文件,如下所示
$app->register(Phillx\Rethinkdb\RethinkdbServiceProvider::class);
$app->withEloquent();
数据库配置
现在您需要创建内容类似于的文件config/database.php
<?php
return [
'default' => 'rethinkdb',
'connections' => [
'rethinkdb' => [
'name' => 'rethinkdb',
'driver' => 'rethinkdb',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', 28015),
'database' => env('DB_DATABASE', 'homestead'),
]
],
'migrations' => 'migrations',
];
创建后,您可以直接编辑您的.env
文件
DB_HOST=localhost
DB_DATABASE=rethinkdb_name
DB_CONNECTION=rethinkdb
但您始终可以将DB_HOST
更新为指向您安装rethinkdb的IP地址。
迁移
创建迁移文件
您可以使用以下命令轻松创建迁移文件,这将为您创建一个用于创建用户表并使用包模式而不是Laravel模式的迁移文件
php artisan make:rethink-migration Users --create
请注意,您可以使用与make:migration
相同的选项使用make:rethink-migration
,因为它是基于laravel的make:migration
请注意,Laravel Schema API尚未完全实现。例如,使用自增的ID列将不会是自增的无符号整数,而是UUID,除非显式设置。最简单的解决方案是在RethinkDB中保持UUID的使用,关闭Laravel中的自增ID,最后在Laravel中实现UUID的使用。
运行迁移
这里不会有任何变化,您将继续使用您习惯执行的相同Laravel命令来运行迁移。
Laravel用户迁移文件的示例
这是laravel用户迁移文件如何变为的示例
<?php
use Phillx\Rethinkdb\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password', 60);
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('users');
}
}
模型
创建模型类
您可以使用以下命令轻松创建模型类,这将为您创建它并使用包模型而不是Laravel模型
php artisan make:rethink-model News
请注意,您可以使用与make:model
相同的选项使用make:rethink-model
,因为它是基于laravel的make:model
Laravel新闻模型类的示例
这是laravel模型类如何变为的示例
<?php
namespace App;
use \Phillx\Rethinkdb\Eloquent\Model;
class News extends Model
{
//
}
更新模型类
请注意,Laravel在初始安装期间生成的任何模型都需要手动更新才能正常工作。例如,User模型扩展了Illuminate\Foundation\Auth\User
,该扩展进一步扩展了Illuminate\Database\Eloquent\Model
而不是\duxet\Rethinkdb\Eloquent\Model;
。需要从User模型中删除导入Illuminate\Foundation\Auth\User
,并用\duxet\Rethinkdb\Eloquent\Model;
替换,并将需要实现的所有接口和相关特性从Illuminate\Foundation\Auth\User
迁移到User模型。
Laravel用户模型类的示例
这是laravel用户模型类如何变为的示例
use Illuminate\Auth\Authenticatable;
use \Phillx\Rethinkdb\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Foundation\Auth\Access\Authorizable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
class User extends Model implements
AuthenticatableContract,
AuthorizableContract,
CanResetPasswordContract
{
use Authenticatable, Authorizable, CanResetPassword;
//
}