Php 如何在Spatial/laravel权限中使用UUID
我正在使用Php 如何在Spatial/laravel权限中使用UUID,php,laravel,laravel-5,eloquent,spatie,Php,Laravel,Laravel 5,Eloquent,Spatie,我正在使用ramsey/uuid作为我所有项目表的主键。如何禁用自动递增并允许填充角色和权限主键?我已经设法在其他表上实现了这一点,但这两个表一直困扰着我。在app中创建一个名为Traits的文件夹。在那里,创建一个文件Uuids.php 将以下代码添加到Uuids.php <?php namespace YourNamespace; use Illuminate\Support\Str; trait Uuids { /** * Boot function from
ramsey/uuid
作为我所有项目表的主键。如何禁用自动递增并允许填充角色
和权限
主键?我已经设法在其他表上实现了这一点,但这两个表一直困扰着我。在app
中创建一个名为Traits
的文件夹。在那里,创建一个文件Uuids.php
将以下代码添加到Uuids.php
<?php
namespace YourNamespace;
use Illuminate\Support\Str;
trait Uuids
{
/**
* Boot function from Laravel
*/
protected static function boot()
{
parent::boot();
static::creating(function ($model) {
$model->incrementing = false;
$model->{$model->getKeyName()} = Str::uuid()->toString();
});
}
}
在修改列之前,请确保将原则/dbal
依赖项添加到composer.json文件中。DBAL库用于确定列的当前状态,并创建对列进行指定调整所需的SQL查询:
编写器需要条令/dbal
接下来创建一个迁移文件
php artisan make:migration change\u primary\u key\u type\u in\u roles\u table--table=roles
然后在您的迁移文件中。你这样做
public function up()
{
Schema::table('roles', function (Blueprint $table) {
$table->uuid('id')->change();
});
}
public function down()
{
Schema::table('roles', function (Blueprint $table) {
$table->increments('id')->change();
});
}
不要忘记执行编写器转储自动加载
希望这有帮助
更新:我写了一篇关于如何实现这一点的博文在
应用程序中创建一个名为Traits
的文件夹。在那里,创建一个文件Uuids.php
将以下代码添加到Uuids.php
<?php
namespace YourNamespace;
use Illuminate\Support\Str;
trait Uuids
{
/**
* Boot function from Laravel
*/
protected static function boot()
{
parent::boot();
static::creating(function ($model) {
$model->incrementing = false;
$model->{$model->getKeyName()} = Str::uuid()->toString();
});
}
}
在修改列之前,请确保将原则/dbal
依赖项添加到composer.json文件中。DBAL库用于确定列的当前状态,并创建对列进行指定调整所需的SQL查询:
编写器需要条令/dbal
接下来创建一个迁移文件
php artisan make:migration change\u primary\u key\u type\u in\u roles\u table--table=roles
然后在您的迁移文件中。你这样做
public function up()
{
Schema::table('roles', function (Blueprint $table) {
$table->uuid('id')->change();
});
}
public function down()
{
Schema::table('roles', function (Blueprint $table) {
$table->increments('id')->change();
});
}
不要忘记执行编写器转储自动加载
希望这有帮助
更新:我写了一篇关于如何实现这一点的博文你的最佳工作状态完美谢谢much@AntwenySawe太好了,我可以帮忙。请别忘了把它标记为正确答案:)老兄,你最好了,它工作得很好,谢谢much@AntwenySawe太好了,我可以帮忙。请不要忘记将其标记为正确答案:)