我想为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
返回一个字符串。
我还需要其他任何东西来为我的模型创建默认值吗?提前谢谢。
答案 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));