royalcms / database
Royalcms 数据库包。
v7.1.2
2020-04-22 03:52 UTC
Requires
- php: ^7.2.5
- ext-json: *
- illuminate/database: ^7.0
- royalcms/container: ^7.0
- royalcms/contracts: ^7.0
- royalcms/support: ^7.0
Suggests
- doctrine/dbal: Required to rename columns and drop SQLite columns (~2.4).
- fzaninotto/faker: Required to use the eloquent factory builder (~1.4).
- royalcms/console: Required to use the database commands (5.0.*).
- royalcms/events: Required to use the observers with Eloquent (5.0.*).
- royalcms/filesystem: Required to use the migrations (5.0.*).
- royalcms/pagination: Required to paginate the result set (5.0.*).
README
Royalcms 数据库组件是 PHP 的完整数据库工具包,提供可表达式的查询构建器、ActiveRecord 风格的 ORM 和模式构建器。它目前支持 MySQL、Postgres、SQL Server 和 SQLite。它也作为 Royalcms PHP 框架的数据库层。
使用说明
首先,创建一个新的 "Capsule" 管理实例。Capsule 旨在使在 Royalcms 框架之外配置库尽可能容易。
use Royalcms\Component\Database\Capsule\Manager as Capsule; $capsule = new Capsule; $capsule->addConnection([ 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'database', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ]); // Set the event dispatcher used by Eloquent models... (optional) use Royalcms\Component\Events\Dispatcher; use Royalcms\Component\Container\Container; $capsule->setEventDispatcher(new Dispatcher(new Container)); // Make this Capsule instance available globally via static methods... (optional) $capsule->setAsGlobal(); // Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher()) $capsule->bootEloquent();
composer require "royalcms/events"
当您需要使用 Eloquent 的观察者时需要。
一旦 Capsule 实例已注册,您可以这样使用它
使用查询构建器
$users = Capsule::table('users')->where('votes', '>', 100)->get();
其他核心方法可以直接从 Capsule 以与 DB 门面相同的方式访问
$results = Capsule::select('select * from users where id = ?', array(1));
使用模式构建器
Capsule::schema()->create('users', function($table) { $table->increments('id'); $table->string('email')->unique(); $table->timestamps(); });
使用 Eloquent ORM
class User extends Royalcms\Component\Database\Eloquent\Model {} $users = User::where('votes', '>', 1)->get();
有关使用本库提供的各种数据库功能的高级文档,请参阅 Royalcms 框架文档。