open-resource-manager / client-laravel
Laravel 增强型 ORM 客户端库
v0.2.3
2018-06-26 16:37 UTC
Requires
README
Laravel 增强型 ORM 客户端库
- ORM 设置从
.env中读取。 - ORM 会话被缓存。
- 高效处理认证。
安装
添加到 composer.json
composer require open-resource-manager/client-laravel ~0.1
添加到 config/app.php
注意,你只需在 Laravel < 5.5 时这样做,因为 Laravel 5.5 具有自动发现功能。
- 添加到
providers数组下的Package Service Providers:OpenResourceManager\Laravel\ORMServiceProvider::class - 添加到
aliases数组的末尾:'ORM' => OpenResourceManager\Laravel\Facade\ORM::class,
发布配置
php artisan vendor:publish --tag orm
编辑 Env (.env)
将以下内容添加到您的 .env 中,并使用与您相关的值
ORM_SECRET=klfnqjafjk890fhd89qmq39dfj90
ORM_HOST=orm.example.com
ORM_PORT=443
ORM_SSL=true
使用方法
使用辅助函数
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use OpenResourceManager\Client\Account as AccountClient; class ExampleController extends Controller { public function index() { $orm = getORMConnection(); $accountClient = new AccountClient($orm); return $accountClient->getList()->raw_body; } }
使用外观
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use OpenResourceManager\Laravel\Facade\ORM; use OpenResourceManager\Client\Account as AccountClient; class ExampleController extends Controller { public function index() { $orm = ORM::get(); $accountClient = new AccountClient($orm); return $accountClient->getList()->raw_body; } }
ORM 账户特性
确保您的用户模型有一个 orm_id 属性,并将其设置为账户的 ORM ID。
可用的特性方法
$user->account()- 返回该用户的完整 ORM 账户。$user->emails()- 返回用户的 ORM 电子邮件。$user->mobilePhones()- 返回用户的 ORM 手机。$user->addresses()- 返回用户的 ORM 地址。$user->duties()- 返回用户的 ORM 职责。
可用的特性属性
$user->account- 返回该用户的完整 ORM 账户。
设置和示例
示例用户迁移
<?php use Illuminate\Support\Facades\Schema; use Illuminate\Database\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->integer('orm_id')->unique(); // Add this to your user's model and fill it with the related ORM Account ID. $table->string('username'); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('users'); } }
示例用户模型
<?php namespace App\Model; use Laravel\Passport\HasApiTokens; use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; use OpenResourceManager\Laravel\Traits\OrmAccount; // Add the OrmAccount trait class User extends Authenticatable { use HasApiTokens, Notifiable; use OrmAccount; // Add the OrmAccount trait /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'orm_id', 'username', 'password' ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; }
示例用法
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Model\User; class MyController extends Controller { /** * Trait methods: * * $user->account(); * $user->emails(); * $user->mobilePhones(); * $user->addresses(); * $user->duties(); */ /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('auth'); } /** * Shows a user's ORM Account */ public function showUserAccount($id) { $user = User::findOrFail($id); return $user->account(); // Returns the ORM account } /** * Shows a user's ORM Emails */ public function showUserEmails($id) { $user = User::findOrFail($id); return $user->emails(); // Returns the ORM emails } }