2017-03-31 59 views
1

我有表settings與列: value - VARCHAR類型包含設定值和type - 枚舉類型包含變量類型"int", "string", "float"。如何使用type列中的字符串將此值轉換爲此類型?類型轉換使用字符串類型

我試圖做到這一點在我的模型,但它不工作:

public function getValueAttribute($value){ 
    return ($this->type)$value; 
} 
+1

考慮使用'的setType()'代替 – Qirel

回答

1

您必須使用settype()功能:

<?php 

$var = 42; 
var_dump($var); // int 42 
$type = 'string'; 
settype($var, $type); 
var_dump($var); // string '42' 

適應您的代碼片段:

public function getValueAttribute($value){ 
    settype($value, $this->type); 
    return $value; 
} 
2

你不能使用這樣的動態類型轉換,而必須使用第在。 settype()需要兩個參數,即原始值和您要對其進行類型轉換的新類型。

public function getValueAttribute($value){ 
    settype($value, $this->type); 
    return $value; 
} 
+0

您正在返回的setType()',這將永遠廣管局'bool'的'結果。你需要返回'$ value'來代替;) – roberto06

+1

你知道,我按了編輯就像你發表了你的評論;-)但是歡呼指出它! ;-) – Qirel