jeidison / composite-key

Laravel 组合键

0.4.0 2021-09-15 15:45 UTC

This package is auto-updated.

Last update: 2024-09-15 22:27:12 UTC


README

==========

问题

Eloquent 不支持组合键。

安装

$ composer require jeidison/composite-key

使用

添加模型的特质

namespace App;

use Illuminate\Database\Eloquent\Model;

class MyClass extends Model
{
    use Jeidison\CompositeKey\CompositeKey;
    
    ...
}
  • 查找
    public function index()
    {
        $modelX = ModelX::find(1);
        // or 
        $modelX = ModelX::find(['c1' => 1, 'c2' => 2]);
    }
  • FindOrFail
    public function index()
    {
        $modelX = ModelX::findOrFail(1);
        // or 
        $modelX = ModelX::findOrFail(['c1' => 1, 'c2' => 2]);
    }
  • FindMany
    public function index()
    {
        $modelX = ModelX::findMany([['c1' => 1, 'c2' => 2]]);
        // or 
        $modelX = ModelX::findMany([['c1' => 1, 'c2' => 2], ['a1' => 1, 'a2' => 2]]);
    }
  • 模型新鲜
    public function index()
    {
        $modelX      = ModelX::find(1);
        $freshModelX = $modelX->fresh();
    }
  • 模型刷新
    public function index()
    {
        $anyWhatever      = Anything::find(1);
        $freshAnyWhatever = $anyWhatever->refresh();
    }
  • 模型删除
    public function index()
    {
        $modelX = ModelX::find(1);
        $modelX->delete();
    }
  • 模型销毁
    public function index()
    {
        $count = ModelX::destroy(['c1' => 1, 'c2' => 2]);
        // or 
        $count = ModelX::destroy([['c1' => 1, 'c2' => 2], ['a1' => 1, 'a2' => 2]]);
    }
  • FirstOrCreate
    $modelX = ModelX::firstOrCreate(['name' => 'Test 10']);
    
    $modelX = ModelX::firstOrCreate(
        ['name' => 'Test 10'],
        ['delayed' => 1, 'arrival_time' => '11:30']
    );
  • FirstOrNew
    $modelX = ModelX::firstOrNew(['name' => 'Test 10']);
    
    $modelX = ModelX::firstOrNew(
        ['name' => 'Test 10'],
        ['delayed' => 1, 'arrival_time' => '11:30']
    );
  • IncrementOrDecrement
    // Not implemented
  • Eloquent\Collection::find
    // Not implemented
  • Eloquent\Collection::fresh
    // Not implemented
  • Authenticatable::getAuthIdentifierName
    // Not implemented
  • Authenticatable::getAuthIdentifier
    // Not implemented
  • Model::getRouteKey
    // Not implemented
  • Model::getRouteKeyName
    // Not implemented
  • SerializesAndRestoresModelIdentifiers
    // Not implemented

作者

许可

composite-key 采用 MIT 许可协议 许可。