1. Go to this page and download the library: Download mattkingshott/snowflake 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/ */
// Before
$table->id();
$table->foreignId('user_id');
$table->foreignIdFor(User::class);
// After
$table->snowflake()->primary();
$table->foreignSnowflake('user_id');
$table->foreignSnowflakeFor(User::class);
class CreatePostsTable extends Migration
{
public function up()
{
Schema::create('posts', function(Blueprint $table) {
$table->snowflake()->primary();
$table->foreignSnowflake('user_id')->constrained()->cascadeOnDelete();
$table->string('title', 100);
$table->timestamps();
});
}
}
namespace App\Models;
use Snowflake\Snowflakes;
class Post extends Model
{
use Snowflakes;
}
namespace App\Models;
use Snowflake\Snowflakes;
use Snowflake\SnowflakeCast;
class Post extends Model
{
use Snowflakes;
protected $casts = [
'id' => SnowflakeCast::class,
'user_id' => SnowflakeCast::class,
'title' => 'string',
];
}
bash
php artisan vendor:publish
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.