我有一個名爲vat_free
的字段。所以我的模型創建了一個屬性$vat_free
。其值可以是或。Yii框架 - 如何獲得不同的字段值?
我希望我的視圖來顯示沒有或是,而不是或。我可以這樣做,創建一個像getVatFree()
這樣的吸氣劑,但它看起來像一個混亂的解決方案,因爲然後我將有兩個屬性到同一個字段,即使它會用於不同的目的。
那麼我怎樣才能使用只有原來的屬性$vat_free
?我不能修改它的getter?
我有一個名爲vat_free
的字段。所以我的模型創建了一個屬性$vat_free
。其值可以是或。Yii框架 - 如何獲得不同的字段值?
我希望我的視圖來顯示沒有或是,而不是或。我可以這樣做,創建一個像getVatFree()
這樣的吸氣劑,但它看起來像一個混亂的解決方案,因爲然後我將有兩個屬性到同一個字段,即使它會用於不同的目的。
那麼我怎樣才能使用只有原來的屬性$vat_free
?我不能修改它的getter?
你可以不喜歡
$vat_free = YES or NO
但權之前保存這個對象,你會覆蓋對象類beforeSave()
方法類似以下內容:
beforeSave(){
if($this->vat_free = YES){
$this->vat_free = 1
}else{
$this->vat_free = 0;
}
}
,並覆蓋afterFind()
做反向(對於beforeSave( ))翻譯。但是,如果你進行批量保存或檢索,這甚至是混亂的,並且不起作用。
我看到2個解決方案。
getVatFree()
,這是OOP封裝的全部目的。創建方法
public function getVatFreeString(){
return $this->vat_free ? 'Yes':'No';
}
是妥善的解決辦法,這不是凌亂。
在您的模型中,創建一個僅用於顯示目的的新字段。
class User extends CActiveRecord
{
public $displayVatFreeFlag;
public function rules() { ... }
public function afterFind()
{
$this->displayVatFreeFlag = ($this->vat_free ? 'Yes':'No');
}
}
然後,在您的字段中,顯示該字段爲正常。
Vat free : <?php echo $model->displayVatFreeFlag; ?>
''option value =「1」>是'? – DCoder