open-resource-manager/client-laravel

Laravel 增强型 ORM 客户端库

v0.2.3 2018-06-26 16:37 UTC

This package is auto-updated.

Last update: 2024-09-29 05:34:56 UTC


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 ProvidersOpenResourceManager\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
    }
}