PHP code example of slime-systems / eloquent-object-id
1. Go to this page and download the library: Download slime-systems/eloquent-object-id library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
slime-systems / eloquent-object-id example snippets
$end = Carbon::now('Asia/Tokyo')->startOfWeek();
$start = ObjectId::fromTime($end->subWeek(), unique: false);
$end = ObjectId::fromTime($end, unique: false);
$lastWeekCatCount = Cat::where('id', '>=', OI::val($start))
->where('id', '<', OI::val($end))
->count();
// Don't worry about the utility functions just yet; we'll cover them shortly.
Cat::orderBy('created_at', 'asc')
->skip(20000 * $perPage) // Fetch page 20,000 of the registry
->limit($perPage)
->get();
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
Schema::create('cats', function (Blueprint $table) {
$table->objectId('id')->primary(); // <- here
$table->string('name');
});
use Illuminate\Database\Eloquent\Model;
use SlimeSystems\EloquentObjectId\ObjectIdCast;
class Cat extends Model
{
public $timestamps = false;
protected $guarded = []; // for demonstration purposes
protected $casts = [
'id' => ObjectIdCast::class,
];
}
use Illuminate\Database\Eloquent\Model;
use SlimeSystems\EloquentObjectId\ObjectIdCast;
use SlimeSystems\EloquentObjectId\OI;
class Cat extends Model
{
protected $casts = [
'id' => ObjectIdCast::class,
];
protected static function booted()
{
static::creating(OI::setDefault('id')); // <- here
}
}
use SlimeSystems\ObjectId;
// Create with auto-generated ID
$cat = Cat::create(['name' => 'Luna']);
// Create with explicit ID
$id = new ObjectId;
Cat::create(['id' => $id, 'name' => 'Peanut']);
// Examples
$cat = Cat::latest()->first();
$cat->id->toString(); // a hex string
$id->equals($cat->id); // true
use SlimeSystems\EloquentObjectId\OI;
use SlimeSystems\ObjectId;
$someId = new ObjectId;
// Find by ID
$cat = Cat::find(OI::val($someId));
// Comparison queries
$cats = Cat::where('id', '>', OI::val($someId))->get();
// `::val` also ensures compatibility with hexadecimal and binary formats of ObjectId
$cat = Cat::find(OI::val('0123456789abcdef1011121')); // <- this works, but probably doesn't make sense in terms of value
// Please note that the ID object itself is not compatible with Eloquent
$cat = Cat::find($someId); // <- this doesn't work; Eloquent won't understand what to do with the object.
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.