在laravel 5.3模型

时间:2016-10-12 16:28:26

标签: php postgresql laravel-5 uuid

我已经构建了一个新的Laravel 5.3应用程序,在我的表格中,我使用postgres UUID作为主键和外键。

在定义Laravel模型时,我通常会创建关系。但是,Laravel的ORM似乎没有正确翻译请求:

PHP Warning:  Uncaught exception 'PDOException' with message 'SQLSTATE[22P02]: Invalid text representation: 7 ERROR:  invalid input syntax for uuid: "0"'

我已经搜索了laravel文档但是没有找到任何解释如何使用UUID作为密钥的东西。我需要做一些额外的配置吗?

1 个答案:

答案 0 :(得分:0)

原因是您需要告诉模型该密钥不会自动递增。

class User extends Authenticatable {
    use Notifiable, HasRole, SoftDeletes;

    public $incrementing = false;

    // User code

一旦你设置了这个,Eloquent就知道它不是在寻找一个整数并且会停止返回" 0"在查询模型时。

您可以在此处按照有关使用UraID的教程进行操作:https://garrettstjohn.com/article/using-uuids-laravel-eloquent-orm/