Laravel为特定列创建GUID

时间:2015-06-11 13:44:30

标签: laravel

我想为Laravel 5中的特定列创建一个UUID / GUID。所以我使用Webpatser中的库来获取Laravel5中的UUID。

我想将此设置为特定列的默认值,所以我想我应该使用属性,还是?

但是当我使用

protected $attributes = array('guid' => Uuid::generate(4)->string);

生病时总会收到错误:

syntax error, unexpected '(', expecting ')'

我不确定,因为语法看起来很好,生病时尝试

protected $attributes = array('guid' => 'dsadasfasfsaf');

一切正常(guid是varchar(36)字段) - 和

Uuid::generate(4)->string 

返回一个字符串。

我还需要其他任何东西来为我的模型创建默认值吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

PHP无法在初始值设定项中解析非平凡的表达式。

你可以这样做:

class YourClass 
{
    protected $attributes;

    function __construct()
    {
        $this->attributes = array('guid' => Uuid::generate(4)->string);
    }
}

或者通过使用setter方法:

class YourClass 
{
    protected $attributes;

    public function setAttributes($attributes)
    {
        $this->attributes = $attributes;
    }
}

$classInstance = new YourClass;
$classInstance->setAttributes(array('guid' => Uuid::generate(4)->string));