2015-06-11 60 views
0

我想爲Laravel 5中的特定列創建UUID/GUID。因此,我使用Webpatser中的庫在Laravel5中獲取UUID。Laravel爲特定列創建GUID

我想將其設置爲特定列的默認值,所以我想我應該使用屬性,或?

但是當我使用

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

PHP無法解析初始值設定項中的不平凡表達式。通過使用setter方法

class YourClass 
{ 
    protected $attributes; 

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

或者這樣:

你可以做到這一點

class YourClass 
{ 
    protected $attributes; 

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

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

謝謝!如果生病使用構造函數,那麼GUID現在好了,但是這可能是一個問題,因爲我的Mutators將不會再被調用? – derdida