📜  laravel uuid 未在查询中显示 - PHP (1)

📅  最后修改于: 2023-12-03 15:02:35.728000             🧑  作者: Mango

Laravel UUID 未在查询中显示 - PHP

在 Laravel 中使用 UUID 作为模型的主键有一些优点,比如更加安全,避免了在自增 ID 中被暴露的递增模式等等。 但有时候会发现,在查询中 UUID 并没有显示出来,而是使用了默认的自增 ID,这可能是因为我们在模型中没有定义主键类型为 UUID。

解决方法

我们可以通过在模型中设置 $keyType 属性为 'string',告诉 Laravel 主键类型是字符串类型,这样就可以在查询中显示 UUID 了。

namespace App;

use Illuminate\Database\Eloquent\Model;

class Example extends Model
{
    /**
     * The primary key associated with the table.
     *
     * @var string
     */
    protected $primaryKey = 'id';

    /**
     * The "type" of the auto-incrementing ID.
     *
     * @var string
     */
    protected $keyType = 'string';

    /**
     * Indicates if the model's ID is auto-incrementing.
     *
     * @var bool
     */
    public $incrementing = false;
}

在上面的例子中,我们设置了 $keyType='string',这样在查询时就会返回 UUID。

另外,我们还需要将 $incrementing 属性设置为 false,因为 UUID 是手动设置的,不是 Laravel 自动递增的。

总结

在使用 Laravel 中的 UUID 主键时,我们需要在模型中设置 $keyType='string',这样在查询中就可以显示 UUID 了。同时,还需要将 $incrementing 属性设置为 false

以上就是解决 Laravel UUID 未在查询中显示的方法,希望对你有所帮助。