Laravel无法使用uuid查找模型

问题描述 投票:0回答:1

我正在使用this package在模型中添加uuid,并且可以正常工作,但是当我想查看项目的详细信息时,无法获取它们。

代码

migration

Schema::create('outer_transits', function (Blueprint $table) {
  $table->uuid('id')->primary();
  ....
});

Model

use Illuminate\Database\Eloquent\Model;
use GoldSpecDigital\LaravelEloquentUUID\Database\Eloquent\Uuid;

class OuterTransit extends Model
{
    use Uuid;

    public $incrementing = false;
    protected $keyType = 'string';
    ......
}

Controller

public function show($id)
{
  $transit = OuterTransit::where('id', $id)->with(['outer', 'barcode'])->first();
}

sample url of my item

http://example.com/outers-transits/7b60a175-da82-4aac-926a-79818e9aad9d

任何想法?

php laravel uuid
1个回答
0
投票

您必须这样使用

使用这样的迁移

Schema::create('homes', function (Blueprint $table) {
    $table->uuid('id', 36)->primary();
    ...
    $table->timestamps();
});

在您的模型中这样使用

use Illuminate\Support\Str;

protected $keyType = 'string';

public static function boot(){
    parent::boot();

    static::creating(function ($home) {
        $home->id = Str::uuid(36);
    });
}
© www.soinside.com 2019 - 2024. All rights reserved.