📅  最后修改于: 2023-12-03 15:02:35.728000             🧑  作者: Mango
在 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 未在查询中显示的方法,希望对你有所帮助。